这是警察和强盗的挑战。这是强盗的线索。警察的线索在这里。
cops将从OEIS中选择任何序列,并编写程序p从该序列中打印出第一个整数。他们也会找到一些字符串s,如果你在p中插入S,这个程序必须从序列中打印出第二个整数。如果您在p中的相同位置插入S+S,则此程序必须从序列中打印第三个整数。S+S+勾勒在同一个位置上会印第四,以此类推。下面是一个例子:
Python3,序列A000027打印(1)隐藏的字符串是两个字节。
字符串是+1,因为程序print(1+1)将在A000027中打印第二个整数,程序print(1+1+1)将打印第三个整数,等等。
警察必须公开序列、原程序p和隐藏字符串s的长度。盗贼通过找到任何长度的字符串以及插入该序列的位置来破解提交。字符串不需要与预期的解决方案匹配才能成为有效的漏洞,也不需要将其插入的位置匹配。
如果你破解其中一个警察的答案,发你的解决方案(隐藏的字符串和位置显示)和一个答案的链接。然后评论警察的回答,链接到你的裂缝在这里。
10,那么每一次迭代都会变成10, 1010, 101010, 10101010...而不是10, 1100, 111000, 11110000...。发布于 2019-07-11 21:03:54
({({}<>({}))<>}<>){({}<>)<>}<>这仅仅是30个字节,不知道Nitrodon有什么想法。
我尝试了很多事情,但这才是有效的。A000984项是Pascal三角的中心元素。

现在我想,我可以通过把上面的对角线加起来来得到它们:
例如:

既然尼特尔顿计划的最终行动是总结每件事,这些似乎是一个很好的候选人(更像是我尝试了一堆东西,但这一项最终成功了)。
所以我们需要一个程序,它需要一个部分和,然后产生下一个和。幸运的是,有一个很好的方法从一个得到这些到下一个。每一行都是下一行的增量。也就是说,一行中的n第四项是下一行中的n第四项和n-1第四项之间的区别。

一个问题是,我们没有足够的最后一行来计算我们想要的行。因为每一行都比最后一行长一行,如果我们有一行,那么就不能使用此方法获得下一行的最后一个成员。然而,这里我们有另一个技巧,每一行的最后一个成员等于该行的所有以前的成员!

如果你熟悉大脑-Flak,你就会发现这是一件很容易做的事情。
下面是代码:
首先,我们进行下一行计算,其中每个新成员是两个相邻旧成员的之和。这可以通过以下方式来完成:
{({}<>({}))<>}<>它基本上将一个元素移到上面,并添加(不删除)已经在其顶部的元素。然而,这将逆转一切,所以下次我们得到一行时,需要将其放回原处。
{({}<>({}))<>}<>{({}<>)<>}<>现在我们需要计算行的最后一个成员。就像我之前说过的,这太容易了。因为我们对行中的所有元素都有一个循环,所以我们只需取这个和并推它。我们把它推到第二个循环之前,这样它就会在底部结束。
({({}<>({}))<>}<>){({}<>)<>}<>就是这样。
发布于 2019-07-10 15:04:04
发布于 2019-07-15 17:03:21
的序列A005206
原件:
voOdoO破裂:
voOdoOdNq17L/k
^^^^^^^^我不是MATL专家,但据我所知,原始voOdoO在堆栈上创建了两个空数组和一个数组[0]。这个[0]是作为序列的第一个元素被打印出来的,没有括号。然后,裂纹/解决方案执行以下操作:
d从堆栈中取出一个元素,并将其转换为一个空数组(假设它是一个数字或大小为1的数组)。这些空数组不会被打印出来,但会增加堆栈大小。Nq计算堆栈的大小并减去一个。这是计算函数时的n+1术语(因为它从2开始,每次迭代增加一次,因为d将不可见的内容添加到堆栈中)17L,这是常数Phi = (1+sqrt(5))/2/k执行floor((n+1)/Phi),这是计算序列元素的公式之一。该公式在OEIS上作为a(n) = floor(sigma*(n+1)) where sigma = (sqrt(5)-1)/2列出,但我们使用的是标识(sqrt(5)-1)/2 = 1/Phi。https://codegolf.stackexchange.com/questions/188143
复制相似问题