Вступление
Последовательность Gijswijt ( A090822 ) классно действительно, очень медленно. Проиллюстрировать:
- Первые 3 появляются в 9-м семестре (хорошо).
- Первые 4 появляются в 220-м семестре (далеко, но выполнимо).
- Первые 5 появляются в (приблизительно) 10 ^ (10 ^ 23) -ом члене (просто нет).
- Никто на самом деле даже не знает, где первые 6 ... подозревается, что это на ...
2 ^ (2 ^ (3 ^ (4 ^ 5))) -й срок.
Вы можете предположить, что вам не придется иметь дело с двузначным числом.
Последовательность генерируется так:
- Первый член - 1.
- Каждый термин после этого представляет собой количество повторяющихся «блоков», предшествующих ему (если имеется несколько повторяющихся «блоков», используется наибольшее количество повторяющихся блоков).
Чтобы уточнить, вот несколько первых терминов.
1 -> 1, 1
(один повторяющийся блок ( 1
), поэтому записанная цифра равна 1
)
1, 1 -> 1, 1, 2
(два повторяющихся блока ( 1
), поэтому записанная цифра равна 2
)
1, 1, 2 -> 1, 1, 2, 1
(один повторяющийся блок ( 2
или 1, 1, 2
), поэтому записанная цифра 1
)
1, 1, 2, 1 -> 1, 1, 2, 1, 1
(вы поняли)
1, 1, 2, 1, 1 -> 1, 1, 2, 1, 1, 2
1, 1, 2, 1, 1, 2 -> 1, 1, 2, 1, 1, 2, 2
(два повторяющихся блока ( 1, 1, 2
), поэтому записанная цифра равна 2
)
задача
Ваша задача, как указано в вопросе, сгенерировать n цифр последовательности Gijswijt.
инструкции
- Ввод будет целым числом
n
. - Ваш код может выводить цифры в любой форме (список, несколько выходов и т. Д.).
Это код гольф, поэтому выигрывает самый короткий код в байтах.
._
функцию и другие полезные функции в Pyth.