介绍(可以忽略)
把所有的正数按其规则顺序(1、2、3…)排列有点无聊,不是吗?因此,围绕所有正数的排列(重组),有一系列挑战。这是本系列的第五个挑战(链接到第一,第二,第三的和第四挑战)。
在这个挑战中,我们将遇到Wythoff阵列,它是一个交织在一起的雪崩斐波那契数列和贝蒂数列!
这个斐波那契数对你们大多数人来说,这可能是一个众所周知的序列。给定两个起始数字\$F_0\$和\F_1美元\$,如下\$F_n\$由以下人员提供:\$F_n=F_{(n-1)}+F_{(n-2)}\$对于\$n>2\$.
这个贝亚蒂定理,给定一个参数\美元\$是:\$B^r_n=\floor rn\floor\$对于\$n\ge 1美元\$Beatty序列的特性之一是对于每个参数\美元\$,只有一个参数\$s=r/(r-1)\$,以便这些参数的Beatty序列是分离的和结合在一起,它们跨越除0以外的所有自然数(例如:\$B^r\杯B^{r/(r-1)}=\Bbb{N}\setminus\{0\}\$).
现在,令人震惊的部分来了:您可以创建一个数组,其中每一行是一个斐波那契序列和每一列都是一个Beatty序列。此数组是威瑟夫阵列。最好的部分是:每个正数在此数组中只出现一次!数组如下所示:
1 2 3 5 8 13 21 34 55 89 144 ...4 7 11 18 29 47 76 123 199 322 521 ...6 10 16 26 42 68 110 178 288 466 754 ...9 15 24 39 63 102 165 267 432 699 1131 ...12 20 32 52 84 136 220 356 576 932 1508 ...14 23 37 60 97 157 254 411 665 1076 1741。。。17 28 45 73 118 191 309 500 809 1309 2118 ...19 31 50 81 131 212 343 555 898 1453 2351 ...22 36 58 94 152 246 398 644 1042 1686 2728 ...25 41 66 107 173 280 453 733 1186 1919 3105 ...27 44 71 115 186 301 487 788 1275 2063 3338 ......
第行的元素\百万美元\$和列\n美元\$定义为:
\$A_{m,n}=\开始{cases}\left\lfloor\lfloor m\varphi\rfloor\varphi\ right\rfloor&\text{if}n=1\\\left\lfloor\lfloor m\varphi\rfloor\varphi^2\right\rfloor和\text{if}n=2\\A_{m,n-2}+A_{m,n-1}&\text{if}n>2\结束{cases}\$
哪里\美元\varphi\$是黄金比例:\$\varphi=\frac{1+\sqrt{5}}{2}\$.
如果我们遵循这个数组的反对角线,我们会得到A035513号,这是此挑战的目标序列(注意,此序列是通过以下方式添加到OEIS中的尼尔·斯洛恩他自己!)。由于这是一个“纯序列”挑战,因此任务是输出\a(n)美元\$对于给定的\n美元\$作为输入,其中\a(n)美元\$是A035513号.
你可以遵循不同的策略来实现\a(n)美元\$,这使得这个挑战(在我看来)非常有趣。
任务
给定整数输入\亿美元\$,输出\a(n)美元\$整数格式,其中\a(n)美元\$是A035513号.
注:此处假定为基于1的索引;您可以使用基于0的索引,因此\$a(0)=1;a(1)=2\$,等等。如果你选择使用这个,请在你的回答中提到这一点。
测试用例
输入|输出---------------1 | 15 | 720 | 2050 | 13678 | 30123 | 31941234 | 82122364863000 | 8149999 | 10824029890 | 637
知道最大的\a(n)美元\$对于\$1\len\le32767美元\$是\$a(32642)=5126530484851883941621632839304139171479973138989971=F(256)\lfloor 2\varphi\rfloor+F(255)\$
规则
- 输入和输出为整数
- 您的程序应至少支持1到32767范围内的输入)。请注意\a(n)美元\$在此范围内最多可包含30位数字。。。
- 无效输入(0、浮点、字符串、负值等)可能会导致无法预测的输出、错误或(未定义的)行为。
- 违约I/O规则适用。
- 默认漏洞是被禁止的。
- 这是代码嗅觉,因此以字节为单位的最短答案获胜