Questions tagged «cops-and-robbers»

对于由两个对手(和非对称)子挑战组成的挑战。

7
两对多输出
挑战 我向您介绍了另一种间谍对抗间谍挑战,点刺混淆器与饼干。但是,在这种情况下,要保护的数据不是输入而是输出。 挑战的规则很简单。编写具有以下规范的例程: 该例程可以用任何语言编写,但不能超过320个字节。 该例程必须接受三个32位带符号整数作为输入。它可以采用接受3个参数的函数,接受单个3元素数组的函数或从任何标准输入读取3个整数的完整程序的形式。 该例程必须输出一个带符号的32位整数。 在所有可能的输入中,例程必须输出2到1000(含)之间的唯一值。例程可以输出的唯一值的数量称为其键。 例如,C程序 int foo( int i1, int i2, int i3 ) { return 20 + (i1^i2^i3) %5; } 具有9的关键,因为它(希望)只能输出的九个值16,17,18,19,20,21,22,23,和24。 其他一些限制如下: 该例程必须是完全确定性的并且是时不变的,对于相同的输入返回相同的输出。该例程不应调用伪随机数生成器。 该例程可能不依赖于“隐藏变量”,例如文件中的数据,系统变量或深奥的语言功能。例如,例程通常不应引用常量,除非常量在代码本身中明确定义。强烈建议不要使用依赖于编译器怪癖的例程,数学上未定义的操作的输出,算术错误等。如有疑问,请询问。 您(编码人员)必须精确知道例程可以产生多少个唯一输出,并且应该能够提供至少一个产生每个输出的输入序列。(由于可能有成百上千的唯一输出,因此只有在您的密钥被争用的情况下才需要此集合。) 由于此问题与经典加密几乎没有相似之处,因此,我希望它将为更多的读者所熟悉。 越有创意,就越好。 计分 每字节计数最短的未破解提交将被宣布为获胜者。 如果有任何混淆,请随时提出或评论。 反挑战 鼓励所有读者,包括那些已提交自己例程的读者,“破解”提交的内容。当提交的密钥发布在关联的注释部分中时,该提交将被破解。如果提交的内容持续存在72小时而不被修改或破解,则被认为是“安全的”,随后在破解方面的任何成功都将被视为比赛的原因。 每个读者每次提交只能进行一次破解尝试。例如,如果我向用户X提交:“您的密钥是20”,但我错了,用户X将拒绝我的猜测为错误,并且我将不再能够为该提交提交其他猜测。 破解的提交将被排除在争用之外(前提是它们不安全)。不应对其进行编辑。如果读者希望提交新的例程,则应在单独的答案中提交。 破解者的分数是破解者提交的内容(符合或不符合)的数量。对于计数相同的饼干,排名由所有破解提交中的总字节数决定(越高越好)。 得分最高的饼干将与获胜常规的开发者一起宣布为获胜者。 请不要破解您自己的提交。 祝你好运。:) 排行榜 上次更新时间:9月2日,美国东部标准时间上午10:45 不可逾越的壁垒(非破解提交): CJam,105 [丹尼斯] 不可阻挡的力量(爆竹): 丹尼斯[ Java,269 …

15
Levenshtein距离和OEIS(警察)
这是警察的帖子。该强盗后在这里。 您的任务是采用整数输入N并按顺序OEIS A002942输出第N个数字。 该序列由向后写的平方数组成: 1, 4, 9, 61, 52, 63, 94, 46, 18, 1, 121, 441, ... 请注意,前导零被修剪掉了(100变为1,而不是001)。将其连接成一个字符串(或一个长数字给出): 1496152639446181121441 您应在此字符串/数字中输出第N个数字。您可以选择将N设为0索引或1索引(请说明您选择了哪一个)。 测试用例(1索引): N = 1, ==> 1 N = 5, ==> 1 N = 17, ==> 1 <- Important test case! It's not zero. N = 20, ==> 4 N = …

30
“你好,世界!”(警察的话)
这是警察的话题。强盗的线程是这里。 您的挑战是编写一个程序或函数,该程序或函数使用特定的输入来打印确切的字符串Hello, World!和换行符。大写字母,空格和标点符号必须准确。 输入可以通过标准输入,文件或命令行/函数自变量获取。输出可以通过返回值,写入文件或标准输出来给出。 您的程序必须Hello, World!至少打印一次输入。当您的程序输入错误时(即,不能打印的输入)Hello, World!),它可以执行您喜欢的任何操作-崩溃,打印随机废话,调用Chuck Norris等。 您不得使用哈希算法或任何类似的方法来遮盖所需的输入。 提交最好在TIO上可运行且可破解。允许在TIO上无法运行或破解的提交,但请提供下载/运行它们的说明。 一个星期后,这项挑战将在以后的警察提交中关闭。获胜者是发布它一周后未破解的最短代码(“它”是代码,而不是挑战)。获奖者将在两周后被接受。 自发布以来已过了一周,请标记您的答案为安全并显示输入(以表示> ! spoiler quote)。如果强盗破坏了您的提交(在本周结束之前),请将其标记为已破坏,并显示停止输入(中的> ! spoiler quote)。 寻找完整的作品? fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var …

15
隐藏的倒置(Robbers的线程)
这是一个警察和强盗的难题,可以在此处找到警察的线索。 您的任务将是在警察的线程中查找提供的程序的字谜,并执行其左倒数。 一旦找到答案,请在下面将解决方案作为答案发布,并通知原始答案者。 您将获得第一个破解程序的分数。

12
这个挑战是关于递归的(警察的线程)
警察的线 在此线程中,您的任务是制作一个基于递归的程序/函数以生成任何整数序列。强盗将尝试在强盗的线程中找到较短的非递归解决方案。 挑战简介 在许多语言中,递归函数可以大大简化编程任务。但是,适当递归的语法开销可能会限制其在代码高尔夫球中的可用性。 的警察将创建一个程序或函数采取一个整数n,这将产生所述第一n整数系列的条目,只使用递归1。他们还应确保以较短的非递归方式生成序列,以将其输入标记为安全。 的 劫匪将试图找到一个更短的程序或功能相同的语言,产生相同的整数系列,不使用递归2。 如果警察在十天之内(240小时)未破解提交的文件,则警察将通过公开自己的解决方案来证明实际上有可能采用较短的非递归方法。然后,他们可以将提交的内容标记为安全。 警察挑战赛的获胜者将是最短的(根据code-golf)基于递归的标记为安全的提交。 强盗挑战的赢家将是破解最多解决方案的强盗。 1:只需要递归语法即可;您无需担心例如尾部呼叫优化。 2:同样,语法不是递归的;因此,由于尾部调用优化,您无法发布递归解决方案并将其编译为循环。 提交要求 每个提交都将使用一个整数n(从零开始或从一个开始)。然后,提交的内容将输出或返回第一个n整数选择系列项。(请注意,此整数系列不能依赖n)。输入和输出方法在递归和非递归方法之间可能有所不同。整数序列可以是长度至少为5的任何确定性序列。应该对序列进行适当的说明。 您提交的内容不必花大价钱就能工作n,但至少应该能工作n=5。非递归方法必须至少能够n与递归方法相同,或者达到n=2^15-1,以较小者为准。 递归 对于这一挑战的缘故,递归定义为创建使用所期望的序列的功能(或类似函数的构建体),其调用自身(或调用的功能的序列结束调用本身;这包括如Y组合的构建体)。递归深度应达到无穷n大。非递归的方法是什么,是不是递归的。

30
受限制的迷你挑战强盗线程
警察线 作为强盗,您的任务是找到警察解决方案,并使用提供的语言编写程序,该程序仅使用提供的集合中的字节来计算序列的第n个项。 目标是破解尽可能多的警察答案。每次破解都会给您一点积分。 只要裂缝有效,就不必是警察的预期解决方案。

15
Cheapo Enigma机(警察)
对于强盗帖子,Cheapo Enigma机器(Robbers) 警察的提交将包含一个程序/函数,该程序/函数接受一个字节的数据并返回一个字节的数据。每个可能的输入都必须产生唯一的输出。(换句话说,您的函数必须是双射的) 强盗将尝试使用尽可能短的代码来创建您的逆函数。因此,您的目标是使函数难以反转。 您不能使用仅用于哈希或加密目的的内置程序。 您的字节数不能超过64个字节。0字节的解决方案不符合获胜条件。 输入/输出格式 8位(0或1),或1-256、0-255或-128至127范围内的10进制整数。可以使用标准I / O或文件I / O。函数也可以返回一个值作为输出。输入和输出应属于同一范围(二进制,1-256、0-255或-128至127)。强盗也将需要使用此范围进行输入和输出。 计分 您的字节数与最强盗对您的尝试次数之比。最低分获胜。 仅当强盗试图击败您时,您才有资格赢得(作为警察)。(这个强盗可能是你) 例 C ++,使用0-255范围,31个字节 int x; cin>>x; cout<<(x+1)%256; C ++中可能的强盗提交,32字节 int f(int x) {return x?x-1:255;} 不需要使用相同的语言或类似的算法 这给警察和强盗的得分都是31/32 = 0.97。

5
翻译迷失
如果您不熟悉这种格式,这是一个警察和强盗,请单击标记以转到Wiki。这个问题不会有强盗的线索。 警察 作为警察的任务是从“ 整数序列在线百科”中选择两个序列,并编写一个程序以一个序列的第n个元素为输入并输出第二个序列的第n个元素。然后,您将做出包含代码的答案,并省略所选的序列。强盗将尝试找到您选择的序列,如果一个人设法找到了您要记住的序列或您的程序必须将其他序列标记为“ 破解”。如果强盗通过裂缝告知您您认为无效,则可以出示不是裂缝的证据。否则,您必须对其进行标记。 根据7天内未破解的常见答案,可以标记为安全。一名警察可能会通过揭示他们想出的顺序来将其答案标记为安全。一旦安全,答案将不再被破解。 目的是使程序的字节数最小化,同时保持其完整性。 例 以下Python代码将A000290的第n个元素(平方数)转换为A000217(三角形数): lambda x:sum(range(0,int(x**.5+1))) 规定和要求 如果选择的序列尚未被证明是有限的,则必须输出所有可能存在的术语,而不仅仅是OEIS页面上列出的术语 作为以前的规则的例外,没有无限精度整数的语言不必输出或输入超出其范围的数字。 输入序列的大小一定不能证明小于输出序列的大小。 您的输入序列不得包含任何重复元素(否则该任务几乎是不可能的) OEIS默认情况下在其页面上包含一个索引(“ OFFSET”标头之后的第一个数字),如果您选择另一个索引,则这是您对n的偏移量(n等于序列中第一个元素的索引)。你的答案。 如果您选择的偏移量不同于OEIS上列出的偏移量,则仍必须将输入序列中的所有元素映射到输出序列中的相应元素。 如果您的程序收到的输入不在输入序列中,则它可能会做任何希望的事情(未定义的行为)。但是,仍然输出整数可能符合您的最大利益。 故意使您的代码难以运行,这很不精打细算,无论是通过花费大量时间来执行代码还是通过非自由语言选择。虽然我将强制执行后者,但我不能客观地强制执行前者。但是,为了好玩,我恳请您不要尝试使用前者,因为对于那些计算机较弱的人来说,挑战尤其困难。 强盗 作为强盗,您的任务是选择完整,不安全的答案,并找到它们之间的对应顺序。如果找到解决方案,则可以使用有效的解决方案(不一定是警察的预期解决方案),在适当的答案上注释序列。 强盗不必担心验证两个特定的序列是否为解决方案,如果匹配OEIS上的所有条目,则应发布解决方案。如果这不是警察考虑的顺序,则警察可能会提供证明它是不正确的证据,或者如果找不到他们,则将其标记为破裂。

13
更改代码,更改顺序:强盗
这是警察和强盗的挑战。有关警察的信息,请转到此处。 这个挑战涉及警察选择的两个OEIS序列-S 1, S 2-以及对这些序列进行打高尔夫球和模糊处理的程度。 警察正在构建产生S 1的代码A,并给出一个数字X,他们声称这是创建产生S的B的最佳Levenshtein距离(以字符为单位) 2。 强盗的挑战 要破解特定警察的提交内容,强盗必须提供与该答案产生S 2(n)且Y字符从A变为(带有)的相同语言(和版本)的程序C。强盗不一定需要找到完全相同的东西Y <= X与警察(秘密地)产生 B代码。强盗的陈述必须遵循与警察的陈述相同的0索引或1索引。 如果您能解决此问题,请在解决方案中发布答案,并链接到警察的答案,然后在警察的答案上留下评论(链接回您的答案)。 每个警察的答案只能破解一次,当然,您也不能破解自己的答案。如果警察的答案在被破解之前或之后被证明是无效的,则不计入强盗的分数。 获胜和得分 抢劫犯会(X - Y)*5 + 5根据他们的每个得分进行得分,总分最高的抢劫犯会获胜。 进一步规则 您不得使用任何内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。 允许使用任何程序或函数,但代码不得为摘要,并且不得假定为REPL环境。 您可以采用任何方便的格式输入并提供输出。两个序列的输入/输出方法必须相同。 Levenshtein距离这一挑战的权威计算器就是这个 Planet Calc上的计算器。 除了作为一个CNR的挑战,这是代码高尔夫球因此所有往常一样打高尔夫球规则。

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

6
高尔夫球链(警察线)
这是警察和强盗的挑战。有关强盗的线索,请转到此处。 警察有三个任务。 1)从OEIS中选择一个序列。 2)选择一种语言(建议这是一种golflang语言,但不一定要这样),当使用所有常用的代码高尔夫规则给定input n,output A(n)(A(n)选择的顺序在哪里)时。 把这种语言大号一个和代码Ç 一个。 例如,Jelly和Jelly_code。 3)然后,选择另一种语言(建议这是一种非golang的语言,但不一定非要这样),并再次遵循所有常见的代码高尔夫规则,编写无需输入并输出代码C A的代码。(注:这可以混淆代码,不一定需要被golfed,但较长的这段代码是越容易成为劫匪破解您的提交) 调用此语言大号乙和代码Ç 乙。 例如,Python和Python_code。 警察对此挑战的服从是顺序(指定索引是0还是1),两种语言L A和L B的名称(以及哪一种可以解决哪一部分)以及仅C B的字节数。保留这两部分的实际代码以及C A的长度。 对于Cop,赞赏但不要求链接到L A和L B的文档或解释器(或TIO链接,因为包括两者)。 强盗的挑战是选择一个警察的条目,并以相同的L B语言编写代码C C,然后以解决原始OEIS任务的相同L A语言输出一些代码。C P的长度可以不大于警察所揭示的C B的长度(尽管可以更短)。注:所生产的代码Ç Ç并没有要匹配Ç 一个。 在我们的例子,这意味着强盗必须写的Python输出代码果冻代码一种解决原始OEIS序列,并且的Python代码必须不长于长度揭示缔约方会议。 获奖条件 一周内没有被破解的答案可以揭示其解决方案,这时它们被认为是安全的。请注意,如果一周后没有透露解决方案,那么它仍然可能会被破解。安全答案最短的警察胜出。

24
打印升序ASCII,强盗
这是强盗的线索。警察的线索在这里。 在警察线程中,任务是创建一个程序,该程序以升序输出可打印的ASCII字符。强盗的任务是解开用于产生此输出的警察代码。 破解的代码不必相同,只要它具有相同的长度并且任何显示的字符都位于正确的位置即可。语言也必须相同(版本号可以不同)。当然,输出必须相同。警察无法在其代码中使用注释,但强盗可以自由使用它们。 强盗线程的获胜者将是到2016年1月7日破解提交数量最多的用户。如果出现平局,则破解合并代码最长的提交内容的用户将获胜。 提交的格式应为: 语言,nn个字符(包括答案​​链接),缔约方会议的用户名 码: alphaprinter 输出量 abcdefghijklmnopqrstuvwxyz 可选说明和注释。 排行榜: 阿德南(Adnan)惨败! Adnan: 7 Pietu1998: 3 Mitch Schwartz: 2 Quintopia: 2 Martin Büttner: 2 cat: 1 Dennis: 1 insertusernamehere: 1 isaacg: 1 jimmy23013: 1 MegaTom: 1 plannapus: 1 user81655: 1

10
查找交织的源代码(强盗)
这是强盗的线索。有关警察的线索,请转到此处。 介绍 对于这次“警察/盗贼”挑战,警察将编写产生输出的程序并将它们交织在一起。强盗的工作是将警察的程序分开以产生所需的输出。 强盗规则 强盗将尝试找到人们在提交给警察的线索(以上链接)中提交的不同程序。如果强盗解决了警察的代码,则他们必须张贴分离的程序,并在此处将其与输出匹配,并在答案中张贴,并且他们已破解警察的答案上的代码。 计分 在对破解的提交进行评分时,会将两个部分加在一起。 2取决于警察回答中使用的不同程序的数量 圆形的字节交织的数量下降到2最近的电源。 例如,如果强盗TIliGoEnR以TIGER和的身份开枪lion,那么强盗将获得2 ^ 2 + 8 = 12点。 强盗挑战的获胜者将是在足够长的时间让人们参与之后得分最高的人。 (谁想帮助您制作摘录?)

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

7
因子总数
给定n> 1的正整数,确定乘以n大于1的整数可以得到多少个数字。例如,如果n = 24,则可以通过以下方式将n表示为乘积 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 = …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.