所述SUDSI序列(ス米,d。差分,s ^ WAP,我 ncrement)是一个奇怪的整数序列,似乎表现出相当混乱行为。可以如下生成:
令S为自然数的无限列表:1 2 3 4 5 6 ...
。让小号我表示一个索引的我的第i个元素小号。因此,最初, S 1为1,S 2为2,依此类推(没有S 0)。
从S 1和S 2开始 ...
- 计算它们的总和:
sum = S1 + S2
- 计算它们的绝对差(较大的值减去较小的值):
diff = |S1 - S2|
交换S中两个值的总和和差值:
swap(Ssum, Sdiff)
递增您正在使用的S的索引。因此,下一次您将计算S 2和S 3的和与差,之后的时间将是S 3和S 4,依此类推。
- 无限重复此过程。
这是应用此过程时S的前几个阶段。方括号[]
包围将要求和和求差的两个值。
原始S:
[1 2] 3 4 5 6 7 8 9 10 11 12 ...
后小号3(3 = 1 + 2
)和小号1(1 = |1 - 2|
)被交换:
3 [2 1] 4 5 6 7 8 9 10 11 12 ...
交换S 3和S 1之后:
1 2 [3 4] 5 6 7 8 9 10 11 12 ...
交换S 7和S 1之后:
7 2 3 [4 5] 6 1 8 9 10 11 12 ...
交换S 9和S 1之后:
9 2 3 4 [5 6] 1 8 7 10 11 12 ...
交换S 11和S 1之后:
11 2 3 4 5 [6 1] 8 7 10 9 12 ...
交换S 7和S 5之后:
11 2 3 4 1 6 [5 8] 7 10 9 12 ...
等等
SUDSI序列定义为这些列表中每个列表中的第一元素的序列。因此SUDSI序列的前几项是1 3 1 7 9 11 11
。
这是SUDSI序列的前200个术语(每行20个):
1 3 1 7 9 11 11 11 15 15 19 19 19 19 19 19 19 19 19 19
19 19 19 19 19 19 19 19 57 59 59 59 59 59 59 59 59 59 77 79
81 83 85 87 89 91 91 91 91 91 91 91 91 91 91 91 91 91 115 115
121 123 125 127 127 127 127 127 137 139 141 143 145 147 147 147 147 147 147 147
147 147 147 147 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167 167
167 167 167 167 209 211 211 211 211 211 221 223 223 223 223 223 223 223 223 223
223 223 243 243 243 243 243 243 257 259 261 263 263 263 263 263 263 263 263 263
263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263 263
263 263 325 327 329 331 331 331 331 331 331 331 331 331 349 351 351 351 351 351
361 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363 363
(至少对我而言)尚不清楚如何预测未来的期限。可以肯定地说,这些术语始终是奇数,不递减(在第二个术语之后),并且某些数字重复了很多次。
挑战
编写一个接受正整数n并打印或返回SUDSI序列的第n个项的程序或函数。例如,如果n为1,则输出为1
,如果n为2,则输出为3
,如果n为200,则输出为363
。
以任何常用方式(stdin /命令行/功能arg)进行输入。以字节为单位
的最短答案将获胜。
(该站点以UTF-8编码,但是您可以使用任何想要的现有编码。)
数学奖金:(可能有资格获得赏金)
- 告诉我更多有关SUDSI序列的信息。什么是数字的基本模式是什么?数字有多少(以及类似的东西)?(顺便说一下,我在OEIS上找不到SUDSI 。)