介绍
Gijswijt的序列(A090822)确实非常慢。为了显示:
- 前三个出现在第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
)
任务
如问题所述,您的任务是生成Gijswijt序列的n位数字。
使用说明
- 输入将是一个整数
n
。 - 您的代码可以以任何形式输出数字(列表,多个输出等)。
这是代码高尔夫,因此以字节为单位的最短代码获胜。
._
Pyth中的功能和其他有用的功能。