Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

30
您的语言中五个最强大的字符是什么?
选择您的语言支持的任何五个字符。有5个!= 5×4×3×2×1 = 120种方式可以将它们排列成5个字符的字符串,每个字符包含一次;120 个排列。 选择您的字符,以便在使用您的语言运行120个字符串中的每个字符串时,所产生的120个输出将是从1到120(含)之间尽可能多的唯一整数。 也就是说,对于产生可运行代码并输出一个数字的5个字符的120个置换中的每一个,您都希望所有这些数字的集合尽可能与1到120的整数集合匹配。 因此,理想情况下,你的第一个置换将输出1,下2,下3,一路最多120。但是对于大多数语言和字符来说,这种理想可能是不可能的。 5个字符的字符串可以按以下方式运行: 没有输入的程序 没有参数的函数 一个REPL命令 如果需要,可以以不同的方式运行不同的字符串 为了使输出计数,按常规方式,它必须是单个整数输出,例如: 被打印到标准输出 由函数返回 REPL表达式的结果 该代码应正常终止(只要先输出该数字,就可能会出错)。根本不运行的代码很好,只是(不存在的)输出不计算在内。除非您的语言使用其他基数,否则输出的数字应为十进制。 该提交产生了从1到120获胜的最明显的数字。如果出现平局,则较早提交的文件将获胜。 笔记 您的5个字符并不需要都相同,但是,当然,重复的字符会减少排列的有效次数。 浮点输出,例如32.0count以及plain 32。(但32.01不会。) 前导零,例如032count和plain 32。 有效输出应该是确定性的,并且是不变的。 我们正在处理字符,而不是字节。 例 123+*对于Python(或许多语言)的REPL ,字符是合理的首选。产生的120个排列和输出为: 123+* n/a 123*+ n/a 12+3* n/a 12+*3 n/a 12*3+ n/a 12*+3 36 132+* n/a 132*+ n/a 13+2* n/a 13+*2 n/a …

30
一个接一个的OEIS
作为13/03/2018 16:45 UTC的,获胜者是回答#345,由Scrooble。这意味着比赛已正式结束,但只要他们遵守规则,就可以继续发布答案。 同样,只需快速回答排名靠前的三个回答者即可: 1. NieDzejkob -41个答案 2. KSmarts -30个答案 3. 超中微子 -26个答案 这是一个答案链问题,使用的是OEIS的序列以及先前提交内容的长度。 此答案链问题将以以下方式工作: 我将发布第一个答案。所有其他解决方案必须源于此。 下一个用户(我们称它们为userA)将找到OEIS序列,其中其索引号(请参见下文)与我的代码的长度相同。 然后,他们必须使用该序列以未使用的语言编写一个程序,该程序将一个整数作为输入n,并按该序列输出第n个数字。 接下来,他们在自己的解决方案之后发布解决方案,并且新用户(userB)必须重复相同的操作。 n序列的第一个项是第一个项之后n次的项,第一个值是其OEIS页上给出的第一个值。在这个问题中,我们将对这些序列使用0索引。例如,使用A000242和n = 3,正确的结果将是25。 然而! 这不是代码问题,因此最短的代码无关紧要。但是代码的长度仍然会产生影响。为了防止序列重复,您的字节数必须唯一。这意味着此处提交的任何其他程序都不能与您的字节长度相同。 如果没有最后一个帖子的长度顺序,则帖子的顺序是未使用的最低顺序。这意味着所使用的序列也必须是唯一的,并且该序列不能与您的字节数相同。 在发布答案并且超过一个星期没有发布新答案之后,最后一个发布者(未中断链接的答案)之前的答案将获胜。 输入输出 通用输入和输出规则适用。输入必须是整数或整数的字符串表示形式,输出必须是序列中的正确值。 格式化 与大多数答案链式问题一样,请按照以下格式设置答案格式 # N. language, length, [sequence](link) `code` [next sequence](link) *anything else* 规则 发布答案后,您必须等待至少1个小时才能发布答案。 您不能连续发布两次(或更多)。 序列的索引号是A零件之后的数字,并且去除了前导零(例如,A000040索引号为40) 您可以假定输入或所需的输出都不会超出您的语言数字范围,但是请不要滥用它,例如,选择仅使用数字1的语言。 如果提交的长度超过65536个字符,请提供一个链接,以访问代码(例如,pastebin)。 n 绝对不会大于1000,也不会超出序列的范围,只是为了防止准确性差异阻止语言竞争。 每有150个(有效)答案,使用一种语言的次数就会增加。因此,在发布150个解决方案之后,每种语言都可以使用两次(所有以前的答案都计入其中)。例如,发布150个答案后,Python 3可以使用两次,但是由于它已经被使用过一次,这意味着它只能再使用一次,直到发布了300个答案。 …

30
独特就是便宜
编写确定给定字符串成本的函数或程序,其中 每个字符的成本等于字符在字符串中到目前为止发生了多少次,并且 字符串的成本是其字符成本的总和。 例 对于的输入abaacab,成本计算如下: a b a a c a b 1 2 3 4 occurrence of a 1 2 occurrence of b 1 occurrence of c 1+1+2+3+1+4+2 = 14 因此,字符串的成本为abaacab14。 规则 您提交的分数是你的代码的成本如上定义,那就是你的提交上自己的源代码的运行,具有较低的分数更好。 您的提交应适用于包含可打印ASCII字符以及提交中使用的所有字符的字符串。 文字是大小写敏感的,这是a和A不同的字符。 测试用例 input -> output "abaacab" -> 14 "Programming Puzzles & Code Golf" -> 47 …

30
多功能整数打印机
编写一段至少可以用三种不同语言执行的代码。代码必须输出第一1语言,第二2语言,3第三语言等的整数。 规则: 输出必须仅是整数,但结尾的换行符可以。 该代码不能接受任何形式的输入 同一语言的不同主要版本被认为是唯一的。因此,您的代码可以在Python 2和Python 3中执行,但是Python 2.5和Python 2.7并不是唯一的。 您可以使用一种新语言,前提是该语言具有esolang / wiki文章,可用的解释器和文档,并且在用于此挑战之前已被至少两个用户在PPCG上使用。它还必须遵守这4条规则。 提交的分数是代码中的字节数除以可以在多维数据集中运行的语言数。因此,可以以3种语言执行的54字节解决方案得分为2: 54 / 3^3 = 2 分数越低越好。 排行榜 显示代码段 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; } table thead { font-weight: bold; } …

11
建造降价炸弹[关闭]
我敢肯定,我们大多数人都听说过拉链炸弹和类似的减压炸弹把戏,其中恶意制作的输入会产生大量不成比例的输出。我们甚至在这里有一个问题,想在某一时刻对编译器执行此操作。 好吧,我觉得Markdown是一种压缩格式,用“压缩的” MD令牌代替了笨重的HTML标签。因此,有可能在Markdown建造一个压缩炸弹吗? 挑战规则: 提交内容应该是一段降价文字,长度在50到256个字符之间。(强加了一个最小值,以阻止一些智能警报发布3个字符的响应或类似内容。) 该提交将由StackExchange的Markdown处理器(在此站点中实现)进行处理。 您的分数将是结果HTML中的字符数与Markdown文本的字符数之比。 最高分获胜。

18
该语言何时发布?
您的挑战很简单。您需要编写一个程序,该程序可以在发布所用语言的那年将其打印到STDOUT或文件中。因为这是一个简单的任务,所以它必须用尽可能多的不同语言编写。 您的分数是正确打印的不同年份的总数。 对于您使用的每种语言,您必须 指定您使用的语言版本。(如果有多个版本) 指定该版本首次发布的年份,以及 提供指向页面的链接,以证明您的版本/语言的日期。 只要指定了版本号(如果适用)和发布日期,上述任何一项都可以视为发布日期证明。 维基百科页面。 一个esolangs页。 语言的官方网站。只要有发布日期,一个github页面或类似页面就算在内。(最新提交不计算在内,除非代码中有版本号) 如果该语言没有多个版本或发行版本,请使用该语言的初始发行日期。 同日而语的次要版本都算作不同的语言,只要他们来自不同的年份,仍然产生正确的输出。您不得使用任何可为您提供有关所用语言当前版本的信息(包括发行日期)的内置程序。例如,这是无效的python提交: import platform i = platform.python_version() if i == '3.5': print(2015) if i == '3.4': print(2014) if i == '3.3': print(2012) ... 无论哪种提交方式都能正确打印出最鲜明的年份获胜! 规则 每个程序都必须打印出语言年份,仅此而已。允许使用尾随换行符(Windows样式或* nix样式)。 没有程序可以接受任何输入。 如果出现平局,则以字节计的最短代码获胜。您可以为此使用任何编码,但是所有程序必须使用相同的编码。 只要仍将正确的输出打印到STDOUT或文件中,任何程序都可以打印到STDERR,或抛出运行时/编译时错误和警告。 不同的语言可能使用不同的IO方法,但它们大多数都是完整程序(此挑战所不允许的功能),并且遵循我们允许的默认IO方法之一。 高尔夫快乐多语!

15
在C ++中生成最长的错误消息
写一个短的节目,这将产生最长的可能的错误消息,在一个标准的C ++编译器(gcc,cl.exe,icc,或clang)。 每个条目的分数是编译器发出的最长错误消息中的字符数。源代码中包含的类型以及编译器引用的类型被视为单个字符。 作弊 您始终可以在模板中用长名重新定义模板,但是我希望有一些创意。我试图通过最后一条规则来阻止其中的一些,但是当然这些规则可以做得更好,我很高兴得到改进。

30
哎呀,这些字节是毛额
编写一个程序或函数,当给定一个字符串时,它会尽可能多地过滤掉不同的字节并返回清理后的字符串。但是,由于您的程序讨厌它们,因此这些字节中的任何一个都不能出现在您自己的代码中。 您的分数将是程序从输入中过滤掉的不同字节数,越高越好。这是最高分数255(因为您的程序必须至少一个字节)。决胜局是代码的长度,越低越好。 例如,如果您的程序过滤出bytes 0123456789,则其得分为10,但您的程序本身不能包含这些字节。 规则 字节表示八位位组。 您还可以选择将输入作为整数列表,其值的范围为0到255。它们对应于等效字节。 您的输出应与输入的格式相同 不阅读源代码 您的代码必须为非空 是的,我知道将会有一个语言/一元答案。但是至少请打高尔夫球吗?;) 编辑规则: 您可以选择忽略某个字节,例如,如果该字符串与字符串或EOF的终止字节无法区分。但是,这意味着您不能在提交中使用它,也不会计入您的分数。如果选择这样做,您的最高分将是254,但是您不必处理输入中的该字节。

30
你能打败我吗?(警察科)
警察科 强盗部分可以在这里找到。 感谢FryAmTheEggman,Peter Taylor,Nathan Merrill,xnor,Dennis,Laikoni和Mego的贡献。 挑战 你的任务是写2个不同的程序(全程序/功能/等)在相同的语言和相同的版本(例如Python的3.5≠的Python 3.4,所以是不允许的),并给予当ñ(使用标准输入/函数参数/ etc。),计算a(n),其中a是您选择的OEIS序列。这些程序之一比另一个短。您只需要提交两者中较长的程序即可。另一个需要保存,以防7天后不被破解。超出程序范围(无论是1字节或更多)时,您的提交将被破解。 例如,如果您选择的任务是执行2× n,那么这可能是有效的提交(在Python 2中): Python 2,16字节,分数= 15/16 = 0.9375 print(2*input()) 计算A005843,(偏移量= 0)。 如果您的提交已被破解,那么您需要在标题中说明如下: Python 2,16个字节,得分= 15/16 = 0.9375,[破解] +链接 print(2*input()) 计算A005843,(偏移量= 0)。 偏移量 可以在每个OEIS页面上找到。例如,对于A005843,偏移量为0,2。我们只需要使用第一个0。这意味着为所有≥0的数字定义了该功能。 换句话说,函数OEIS(n)从n = 0开始。您的程序需要适用于OEIS给出的所有情况。 可以在此处找到更多信息。 计分 您提交的分数等于以下公式: 分数 = 密码的长度(以字节为单位) ÷ 公共密码的长度(以字节为单位) 上面的示例得分为15÷16 = 0.9375。 得分最低的提交者获胜。只有发布了解决方案的提交才有资格获奖。 规则 您需要执行的任务是您选择的OEIS序列。 给定n,输出OEIS(n)。偏差不会允许的,所以你需要产生完全相同的序列(给定的n时,你需要输出OEIS(N))。 …

30
查找非法字符串
面临的挑战是要找到一种字符串,这些字符串不能以您选择的编程语言出现在任何合法程序中。这包括注释,字符串或其他“不可执行”的部分。 挑战 您的程序可能特定于语言的编译器/解释器/运行时环境的特定版本或实现。如果是这样,请详细说明。 仅允许使用标准的编译器/解释器/运行时选项。您不能将一些奇怪的标志传递给编译器以获取特定的结果(例如,传递标志以将警告转换为错误)。 如果您的编程语言需要特定的编码(例如UTF-8),则还必须正确编码您的字符串(即,不允许仅由于字符解码错误而失败的字符串)。 您提交的文件中的每个人物都必须在法律程序中被允许;也就是说,您不能只使用总是被拒绝的字符。 当给出的编译器/解释/运行时必须给出一个错误的任何包含您的字符串作为一个字符串的源代码。该错误不必在程序之间相同-嵌入字符串可能会导致语法错误,而另一嵌入可能会导致运行时错误。 计分 每种语言的最短非法字符串将获胜。 您应该解释为什么字符串是非法的(为什么它不能出现在合法程序的任何地方)。 在评论中提出不正确的解决方案。更具体地说,您应该提供指向TIO或等效文件的链接,以证明包含所建议的子字符串的合法程序(即不产生任何错误的程序)。 一些语言(例如Bash,Batch,Perl)允许在不影响有效性的情况下将任意二进制数据附加到程序中(例如__DATA__在Perl中使用)。对于这样的语言,你可以提交了可能出现的解决方案只有在这样的后段。确保在回答中记下这一点。(此“跟踪部分”的定义取决于语言,但通常表示解析器完全停止阅读脚本之后的任何文本)。 例 在Python中,我可能会提交 x """ ''' 但这可以嵌入到较大的程序中 """ x """ ''' y ''' 所以这是不允许的。

9
计数米粒
考虑一下这10张不同数量的白米谷物的图像。 这些仅是缩略图。单击图像以原尺寸查看。 A: B:C:D:E: F: G:H:I:J: 粒数: A: 3, B: 5, C: 12, D: 25, E: 50, F: 83, G: 120, H:150, I: 151, J: 200 注意... 谷物可能会相互接触,但它们不会重叠。谷物的排列高度不得超过一个谷物。 图像具有不同的尺寸,但是由于照相机和背景是固定的,因此所有图像的大小都是一致的。 颗粒永远不会超出范围或接触图像边界。 背景始终是相同的黄白色一致阴影。 大小谷物均被视为一粒。 这5点是所有此类图像的保证。 挑战 编写一个程序,获取此类图像,并尽可能准确地计算出米粒的数量。 您的程序应使用图像的文件名并打印其计算出的颗粒数。您的程序必须至少适用于以下图像文件格式之一:JPEG,位图,PNG,GIF,TIFF(现在图像均为JPEG)。 您可以使用图像处理和计算机视觉库。 您可能未对10个示例图像的输出进行硬编码。您的算法应适用于所有类似的米粒图像。如果图像区域小于2000 * 2000像素并且米粒少于300粒,那么它应该能够在一台像样的现代计算机上运行少于5分钟。 计分 对于10张图像中的每张,取实际颗粒数的绝对值减去程序预测的颗粒数。将这些绝对值相加即可得到分数。最低分获胜。分数为0是完美的。 如果是平局,则以票数最高的答案为准。我可能会在其他图像上测试您的程序,以验证其有效性和准确性。

30
-ENDED-做一些看起来像其他的事情[关闭]
编写一个代码段,一个函数,一个程序……,这些代码以一种乍一看看上去很清楚的方式执行其他操作而被混淆。 例如:写一些加两个数字的代码,但是当您问某人“它做什么?”时,他会告诉您它打印“ Hello,World!”。 规则 对于大致了解您使用的语言的人,该代码必须是可读的(出于您的利益,请避免使用内在混淆的语言,例如APL)。 该代码必须执行读者最初无法预测的意外操作。 当您问不同的读者时,他们对代码的作用必须有相同的(错误的)看法。 评分 请在最多10到20秒的时间内阅读其他参赛者的密码,以便对发生的事情有一个很好的了解。 在答案中添加注释,说明您认为代码的作用。如果您要提供的答案已经存在,只需+1注释即可。(如果您错过了该答案并添加了其他评论,请放心,它不会被视为另一个答案)。 这些点将以这种方式被识别:(maxFalseOpinion- goodGuess)/ totalOpinion(请参见下面的示例)。 给其他参赛者打上公平竞赛的评价,不要评论自己的代码。 仅添加有用的注释。避免使用“我不知道”和“好人!”,因为评级没有考虑到它们,但是混淆的是代码而不是评级。 评分范例 该代码段将两个数字相加。评论说: (3)显示“你好,世界!” (1)减去2个数字。 (2)将两个数字相加。 点的总数是最大意见数(3)-良好猜测的数目(2)除以猜测的总数(3 +1 + 2 = 6)。结果:(3-2)/ 6 = 1/6 = 16.67%。 有关点的更多信息 人们似乎很难找出要点。 这是一个完美的成绩: printf('Hello World'); 注释: 它显示您单击按钮的次数。(17条评论)。 总计:17条评论 得分:(17-0)/ 17 = 1 = 100% 这是一个la脚的得分: printf('Hello World'); 注释: 打印“ …

30
十个字节的代码中最大的数字
您的目标是仅使用十个字符的代码即可打印(至标准输出)最大数量的打印机。 您可以使用语言的任何功能,但内置指数功能除外。 同样,您可能无法使用科学计数法输入数字。(因此,没有9e+99。) 程序必须在没有用户输入的情况下打印号码。同样,也不会读取其他文件或Web等信息。 您的程序必须计算一个数字并打印出来。您不能打印字符串,也不能打印相同的数字数千次。 您可以从10个字符的限制中排除打印任何内容所需的任何代码。例如,在使用该print x语法的Python 2中,您的程序最多可以使用16个字符。 该程序实际上必须在输出中成功。如果在世界上最快的计算机上运行需要一个多小时,则它无效。 输出可以是任何格式(这样你就可以打印999,5e+100等等) 无限是一个抽象概念,而不是数字。因此这不是有效的输出。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

24
可发布的哈希函数挑战
在此代码挑战中,您将使用140字节1或更少的源代码编写一个哈希函数。哈希函数必须将ASCII字符串作为输入,并返回24位无符号整数([0,2 24 -1])作为输出。 您的哈希函数将针对这本大型英式英语词典2中的每个单词进行评估。您的分数是与另一个单词共享一个哈希值(冲突)的单词数量。 得分最低者获胜,第一张海报打破了平局。 测试用例 提交之前,请在以下输入中测试评分脚本: duplicate duplicate duplicate duplicate 如果它给出的分数不是4,那就是越野车。 澄清规则: 您的哈希函数必须在单个字符串上而不是整个数组上运行。另外,您的哈希函数除了输入字符串和输出整数外,可能不执行任何其他I / O操作。 不允许使用内置的哈希函数或类似功能(例如,加密加扰字节)。 您的哈希函数必须是确定性的。 与大多数其他竞赛相反,允许专门针对得分输入进行优化。 1我知道Twitter限制字符而不是字节,但为简单起见,我们将字节作为对此挑战的限制。 2从Debian的wbritish-huge修改而来,删除了所有非ASCII单词。

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.