需要考虑的一个有趣问题是:
如果我有一个数字序列,那么在清楚我在说什么序列之前,我必须提供几个数字?
例如,如果我想谈的正整数,以便从开始,我可以说,1 ,2 ,3 ,......,但事实是否真的足够了吗?
我有一个回答这个问题的方法,并且是一名代码窃贼,它涉及代码高尔夫球。如果产生这些术语的最短代码产生了序列的所有术语,则您已提供了足够的序列术语。如果我们以代码高尔夫的方式来考虑这一点,那意味着您已经提供了足够的测试用例,从而使通过测试用例的最短代码可以完成所需的任务。
挑战
这个挑战是警察和强盗的挑战。警察将在其中展示测试用例,强盗将不得不寻找一种比预期序列更短的欺骗测试用例的方法。警察将提出以下内容:
一段代码,将一个正整数作为输入并产生一个整数作为输出。该代码可以是零或一个索引,但是应该清楚什么是索引。此代码将定义您的顺序。
任何可能影响输出的相关平台或语言要求,例如longint的大小。
一个数字,以及该代码计算出的序列的前n个项。这些将充当“测试用例”。
强盗将使用比所介绍的语言短的语言来找到一个程序,并通过所有测试用例(对于前输入产生与警察代码相同的输出)。强盗的代码在输出上也必须与警察的程序有所不同,且必须大于n。
计分
强盗会根据他们发现的裂缝数量进行评分,裂缝越多越好。可以通过找到比原始裂纹短的有效答案来再次破解答案。如果答案第二次被破解,则将分数给予第二个饼干,而不是第一个。