需要考虑的一个有趣问题是:
如果我有一个数字序列,那么在清楚我在说什么序列之前,我必须提供几个数字?
例如,如果我想谈的正整数,以便从开始,我可以说,,但事实是否真的足够了吗?
我有一个回答这个问题的方法,而作为代码窃贼,它涉及代码高尔夫球。如果产生这些术语的最短代码产生了序列的所有术语,则您已提供了足够的序列术语。如果我们从代码高尔夫的角度来考虑这一点,那意味着您已经提供了足够的测试用例,从而使通过测试用例的最短代码可以完成所需的任务。
挑战
这个挑战是警察和强盗的挑战。警察将在其中展示测试用例,而强盗将不得不寻找一种比预期序列更短的欺骗测试用例的方法。警察将提出以下内容:
一段代码,将非负整数作为输入,并产生一个整数作为输出。此代码将定义您的顺序。您的代码不需要支持0作为输入,而是选择将1作为最小输入。如果您的答案是这种情况,则应该很清楚。
任何可能影响输出的相关平台或语言要求,例如longint的大小。
一个数字,以及该代码计算出的序列的前项。这些将充当“测试用例”。
鼓励您解释序列的作用并链接OEIS(如果存在),但是定义序列的是您的代码,而不是描述。
强盗将使用比所介绍的语言短的语言来找到一个程序,并通过所有测试用例(对于前输入产生与警察代码相同的输出)。强盗的代码在输出上还必须与警察的程序有所不同,即大于某个数字。
警察在提交之前必须能够破解自己的答案。
一周后,警察可能会发现他们的裂缝并将答案标记为“安全”。标记为这样的答案将不再被破解。
计分
警察的答案将根据字节数进行评分,而字节数越少越好。破解答案的得分是无限的。