Фон
Фрактальная последовательность представляет собой целое число последовательностей , где можно удалить первое вхождение любого целого и в конечном итоге с той же самой последовательностью , как и раньше.
Очень простая такая последовательность называется парамфразами Кимберлинга . Вы начинаете с положительных натуральных чисел:
1, 2, 3, 4, 5, 6, 7, 8, 9, ...
Тогда вы врезаетесь в некоторые пробелы:
1, _, 2, _, 3, _, 4, _, 5, _, 6, _, 7, _, 8, _, 9, ...
И затем вы неоднократно заполняете пробелы самой последовательностью (включая пробелы):
1, 1, 2, _, 3, 2, 4, _, 5, 3, 6, _, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, _, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, 1, 9, ...
Это наша фрактальная последовательность! Теперь давайте возьмем частичные суммы:
1, 2, 4, 5, 8, 10, 14, 15, 20, 23, 29, 31, 38, 42, 50, 51, 60, ...
Но что, если мы повторим этот процесс? «Фрактализуйте» новую последовательность (то есть, частичные суммы, полученные из шагов выше):
1, _, 2, _, 4, _, 5, _, 8, _, 10, _, 14, _, 15, _, 20, _, 23, ...
1, 1, 2, _, 4, 2, 5, _, 8, 4, 10, _, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, _, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, 1, 20, 8, 23, ...
И снова возьмите частичные суммы:
1, 2, 4, 5, 9, 11, 16, 17, 25, 29, 39, 41, 55, 60, 75, 76, 96, ...
Промыть, повторить. Оказывается, этот процесс сходится. Каждый раз, когда вы повторяете этот процесс, больший префикс последовательности остается неизменным. После бесконечного количества итераций вы получите OEIS A085765 .
Интересный факт: этот процесс сходится к той же последовательности, даже если мы не начинаем с натуральных чисел, если исходная последовательность начинается с 1. Если исходная последовательность начинается с любой другой x, мы получили бы x*A085765вместо этого.
Соревнование
Учитывая положительное целое число N, выведите Nэлемент сходящейся последовательности.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции и выводя результат через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или параметр функции (out).
Вы можете выбрать, будет ли индекс Nна основе 0 или 1.
Тестовые случаи
Последовательность начинается с:
1, 2, 4, 5, 9, 11, 16, 17, 26, 30, 41, 43, 59, 64, 81, 82, 108, 117, 147, 151, 192, 203, 246, 248, 307, 323, 387, 392, 473, 490, 572, 573, 681, 707, 824, 833, 980, 1010, 1161, 1165, 1357, 1398, 1601, 1612, 1858, 1901, 2149, 2151, 2458, 2517
Таким образом, ввод 5должен привести к выводу 9.
Вот наивная ссылочная реализация CJam, которая генерирует первыйN числа (данные Nв STDIN). Обратите внимание, что ваш код должен возвращать только Nэлемент th, а не весь префикс.
Nй термин A085765 , верно?