По поводу задачи
RIP.
1. Где-то видел построение функции, принимающей каждое свое значение счетное число раз. С кривой Пеано, кстати.
Вот только сейчас я это наверняка не припомню, поэтому попробовал придумать свое.
2. А не прокатит ли это:
Берем обычную канторову лестницу. На самом большом промежутке постоянства рисуем два кусочно-линейных зубчика, до

и

соответственно.

остается в

.
Далее, рассматриваем 2 промежутка постоянства длины

, строим зубчики от

до

и от

до

для левого и правого промежутка соответственно.
Продолжаем в том же духе.
В точках канторова множества оставляем первичные значения канторовой лестницы.
