在一次非常罕见的事故中,涉及到一小部分镭,一头电死的鲸鱼和三只软糖熊,The Management™的某些源代码已被更改。The Management™的老板几乎不知道,实际上是由警察©负责,以制止The Management™的“邪恶”计划。因此,有人雇用了Robbers®来尝试检索原始代码,因为有时谁不喜欢邪恶?
描述
这是警察和强盗的挑战。
- 的警察将写一个程序(突变的代码),进行任务#1(并且还写一个程序,执行任务#2,但被保持秘密)。
- 该劫匪将试图扭转“突变”,改变这种原始代码转换成代码,执行任务#2。
在此挑战中,任务1将输出n
第素数,任务2将输出n
斐波那契数(无论如何,根据警察的说法,这是邪恶的)。斐波那契数列定义为(n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...),素数定义为(n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...)。
警察的目标是最小化完成任务1和任务2的程序之间的差异,同时防止强盗重新创建完成任务2的代码。
警察规则
警察将编写两个程序(一个完成任务1,一个完成任务2),并公开以下信息:
- 第一个程序(输出
n
第素数) - 所述的Levenshtein编辑距离的第一程序和第二程序之间
- 两种程序都使用的编程语言(两种程序必须使用相同的语言)
以下限制适用于两个程序:
- 长度不得超过128个字符。
- 它们只能使用可打印的ASCII(加上换行符,也允许使用换行符)。
- 它们必须运行少于10秒
n=45
,并且不需要为任何输出正确的输出n>45
。 - 他们不得使用任何哈希或加密功能。
强盗规则
强盗将尝试将警察的程序(完成任务1的程序)更改为以警察指定的编辑距离完成任务2的程序(不一定是警察编写的原始程序)。
已经破解的提交不能再被破解(只有第一个破解提交的强盗才能获得信誉)。
破解提交内容后,请执行以下操作:
- 发帖回答到这一挑战的陪同问题(链接),提供的语言,你的解决方案,并在原来的答案的链接。
- 用链接到您发布的答案的文本“ Cracked” 发表评论。
- 如果您具有编辑权限,请编辑警察的答案(如果没有,请等待具有所需权限的其他人替您这样做或建议进行编辑)。
计分
如果警察的程序保持未破解状态持续1周,则该警察可以发布完成任务2(在指定的编辑距离内)的原始代码,并且从那时起提交就被视为“安全”。编辑距离最小的安全提交将获胜。如果出现平局,则以最短的程序(完成任务1的原始程序)为准。如果仍然有两个提交物并列,则一个较早地获胜。
如果强盗成功破解了警察的提交文件,则强盗的分数将增加该提交文件的编辑距离。例如,强盗以3的编辑距离破解提交内容,而以5的距离破解提交内容,则可获得8分。得分最高的强盗获胜。如果出现平局,则赢得得分的强盗首先获胜。