编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
创建两倍于代码长度的输出
挑战 编写一个完整的程序,该程序向标准输出中写入的字节数是程序长度的两倍。 规则 程序必须将ASCII字符写入标准输出。 输出的内容无关紧要。 输出(以字节为单位)必须恰好是程序长度的两倍(也以字节为单位),除非您满足附加条件。 任何结尾的换行符都包含在输出的字节数中。 奖金 您的程序可以选择n输入数字。如果是这样,输出必须恰好是n * program length字节。您可以假设n始终为正整数。如果未提供任何输入,则n必须默认为2。 如果这样做,您可以从乐谱中减去25个字节。 最短的程序获胜。 限制条件 没有标准漏洞。 该程序必须至少1个字节长。 无需在源代码中添加不必要的空格以更改其长度。同样,评论也不计算在内。 除非您履行奖金,否则该程序不得接受任何输入。如果您确实履行奖金,则整数必须是唯一输入。 最低分(程序长度以字节为单位-奖励)获胜。 每种语言的最短答案会赢得该种语言的支持。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: # [><>](http://esolangs.org/wiki/Fish), …

28
垂直折叠文字
说我有这样的文本(每个单词一行,没有空格) Programming Puzzles & Code Golf 这是没有意义的!它完全违背了物理定律。 您的挑战是要纠正这种不可能的情况并像这样折叠文本: P Prog &uzz Coderam Golflesming 因此,在任何字符下方都没有空白,但是字符保持了垂直顺序。 目的是满足要求,但使用尽可能少的源代码字节。

30
循环而不“循环” [关闭]
几年前曾提出过类似的问题,但这个问题甚至更棘手。 挑战很简单。写一个程序(在您所选择的语言),其不使用任何重复的结构,如重复执行代码while,for,do while,foreach或goto(所以对于你nitpickers,你不能用一个循环)。但是,在调用自身的函数中,不允许递归(请参见下面的定义)。那将使这一挑战变得太容易了。 对于循环中需要执行的内容没有任何限制,但是可以在答案中发布说明,以便其他人可以准确地了解正在执行的内容。 对于那些可能迷恋定义的人,此问题的循环定义为: A programming language statement which allows code to be repeatedly executed. 这个问题的递归定义将是您的标准递归函数定义: A function that calls itself. 7月16日东部时间上午10点,获胜者将是投票最多的答案。祝好运! 更新: 为了平息仍在表达的困惑,这可能会有所帮助: 上述规则: 不要使用循环或转到 函数不能调用自己 在“循环”中做任何你想做的事 如果您想实现某些东西而规则没有明确禁止这样做,请继续进行。许多答案已经违反了规则。

30
确定字符串是否为字谜
挑战 给定两个字符串,算出它们中是否都具有完全相同的字符。 例 输入值 单词,wrdo true之所以返回,是因为它们相同,但只是被打乱了。 输入值 单词,写 这返回false。 输入值 船,鸟羽 这返回 true 规则 这是规则! 假设输入将至少为1个字符长,并且不超过8个字符。 没有特殊字符,只有a–z 所有输入都可以假定为小写 测试用例 boat, boat = true toab, boat = true oabt, toab = true a, aa = false zzz, zzzzzzzz = false zyyyzzzz, yyzzzzzy = true sleepy, pyels = false p,p = true

15
创建仅看起来无法使用的编程语言
强盗的挑战线程在这里。 警察的挑战:设计一种似乎无法用于编程的编程语言,但可以通过某种非显而易见的机制来接受计算(或至少完成任务)。 您应该设计一种简单的编程语言,该语言从输入文件中读取代码,然后执行某些操作。您必须准备一个解决方案程序,当在解释器中运行该解决方案程序时,该程序可在输入中找到第3大数字。您需要使劫匪尽可能地难以找到解决方案。请注意,强盗可以发布完成任务的任何解决方案,而不仅仅是您想到的解决方案。 这是一次人气竞赛。警察的目标是在发布口译员后的8天幸存下来而不会被破解,从而获得尽可能多的选票。为此,以下做法应有所帮助: 准确解释您语言的语义 编写可读代码 强烈建议您不要采用以下策略: 使用加密,哈希或其他加密方法。如果您看到使用RSA加密的语言,或者除非SHA-3哈希值等于0x1936206392306,否则拒绝执行程序,请不要犹豫。 强盗的挑战:编写一个程序,当在警察的解释器中运行时,找到输入中的第三大整数。 这是相对简单的。为了破解警察的答案,您必须创建一个程序,该程序在其解释器中运行时才能完成任务。当您破解答案时,请在链接到您的帖子的警察的答案上发表一条评论,说“破解”。破解最多警察的人将赢得强盗的支持。 I / O规则 口译员应在程序的命令行中使用文件名,并在运行程序时使用标准输入和输出。 输入将以一元形式给出,且仅包含字符0和1(ASCII中的48和49)。数字N编码为N, 1s后跟a 0。0文件结束前还有一个附加内容。示例:对于序列(3,3,1,14),输入为11101110101111111111111100。 确保输入至少3个数字。所有数字均为正整数。 输出将由1程序暂停前打印的s 数来判断。其他字符将被忽略。 在以下示例中,第一行是十进制格式的输入;第二行是十进制格式的输入。第二个是实际程序输入;第三是示例输出。 1, 1, 3 101011100 1 15, 18, 7, 2, 15, 12, 3, 1, 7, 17, 2, 13, 6, 8, 17, 7, 15, 11, 17, 2 111111111111111011111111111111111101111111011011111111111111101111111111110111010111111101111111111111111101101111111111111011111101111111101111111111111111101111111011111111111111101111111111101111111111111111101100 111111,ir23j11111111111u 247, 367, …

30
我花了很多时间才能做到这一点。(YouTube评论1)
等等.....这不是拖钓。 背景 如今,在YouTube上,评论部分杂乱无章: S St Str Stri Strin String Strin Stri Str St S 其中String仅是占位符,是指字符的任意组合。这些模式通常伴随一个It took me a lot of time to make this, pls like或某种东西,并且OP通常会成功聚集许多喜欢的对象。 任务 尽管您凭借出色的高尔夫技巧在PPCG上积累了丰富的才能,但您绝对不是在YouTube评论部分发表机智的言论或引用模因的最佳选择。因此,您在YouTube上经过深思熟虑而提出的建设性评论几乎没有“喜欢”。您想要改变。因此,您可以采用上述陈词滥调的模式来实现自己的最终目标,而又不浪费任何时间手动编写它们。 简而言之,您的任务是获取一个字符串,例如s,并输出的2*s.length - 1子字符串s,以换行符分隔,以符合以下模式: (用于s=“ Hello”) H He Hel Hell Hello Hell Hel He H 输入值 单个字符串s。输入社区的默认值。您可以假设输入字符串仅包含可打印的ASCII字符。 输出量 几行用换行符分隔,构成如上所述的适当模式。应用社区的默认输出。输出中允许使用前导和尾随空白行(不包含任何字符或看不见的字符,如空格)。 测试用例 多字测试用例: Input => …

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
简单的猫程序
最常见的标准任务之一(尤其是在展示深奥的编程语言时)是实现“猫程序”:读取所有STDIN并将其打印到STDOUT。尽管这是用Unix shell实用程序命名的,但cat它的功能当然不如真实功能强大,后者通常用于打印(和连接)从磁盘读取的多个文件。 任务 您应该编写一个完整的程序,该程序读取标准输入流的内容并将它们逐字写入标准输出流。当且仅当您的语言不支持标准输入和/或输出流(大多数语言都理解)时,您才可以使用这些术语来表示它们在您的语言中最接近的等效词(例如JavaScript prompt和alert)。这些是唯一允许的I / O形式,因为任何其他接口都将在很大程度上改变任务的性质,并使答案的可比性大大降低。 输出应该完全包含输入,而没有其他内容。此规则的唯一例外是您的语言解释器不断输出的内容,例如问候语,ANSI颜色代码或缩进​​,这些输出不能被禁止。这也适用于尾随换行符。如果输入不包含尾随换行符,则输出也不应包含任何换行符!(唯一的例外是,如果您的语言在执行后绝对总是打印尾随换行符。) 只要标准输出流包含预期的输出,就会忽略标准错误流的输出。特别是,这意味着您的程序在达到流(EOF)的末尾时可能会以错误终止,前提是该操作不会污染标准输出流。如果这样做,我建议您也将无错误的版本添加到您的答案中(以供参考)。 由于这是在每种语言中而不是在每种语言之间的挑战,因此有一些特定于语言的规则: 如果您的语言完全有可能将标准输入流中的空字节与EOF区分开,则您的程序必须像其他任何字节一样支持空字节(也就是说,它们也必须写入标准输出流中)。 如果您的语言完全有可能支持任意无限的输入流(即,如果您可以在输入中遇到EOF之前开始将字节打印到输出中),则在这种情况下,程序必须正常工作。作为示例,yes | tr -d \\n | ./my_cat应打印ys 的无限流。由您决定打印和刷新标准输出流的频率,但是必须确保它在有限的时间后发生,而不管该流如何(特别是,您不能等待特定字符,例如打印前换行)。 请在您的答案中添加一条注释,说明有关空字节,无限流和无关输出的确切行为。 附加规则 这并不是要找到具有最短解决方案的语言(有些地方空程序会解决问题),而不仅仅是找到每种语言的最短解决方案。因此,没有答案将被标记为已接受。 大多数语言的提交都将以适当的预先存在的编码(通常(但不一定)为UTF-8)以字节计分。 某些语言(例如Folders)很难评分。如有疑问,请在Meta上提问。 随意使用一种语言(或语言版本),即使它比此挑战要新。专门针对此挑战提交0字节答案的语言是公平的游戏,但并不是特别有趣。 请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。 还要注意,语言也必须符合我们平时的标准编程语言。 如果您选择的语言是已经有答案的另一种(可能是更流行的)语言的琐碎变体(请考虑使用BASIC或SQL方言,Unix shell或琐碎的Brainfuck派生词,例如Headsecks或Unary),请考虑在现有答案中添加注释在其他语言中,相同或非常相似的解决方案也是最短的。 除非之前已否决它们,否则所有标准的代码高尔夫球规则都适用,包括http://meta.codegolf.stackexchange.com/q/1061。 附带说明一下,请不要在无聊的语言中打扰无聊(但有效)的答案;这些对于这个问题仍然很有用,因为它试图编译尽可能完整的目录。但是,主要是使用作者实际上必须努力打出代码的语言来提高答案的准确性。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, …
84 code-golf  string 

14
制作圆形错觉动画
您的工作是使这种圈子错觉动起来。看起来像点在圆内旋转,但实际上它们只是沿直线移动。 标准 结果必须是动画的。制作动画的方式无关紧要,它可以生成.gif,可以绘制到窗口,某些设备屏幕或其他任何内容。 这是一次人气竞赛,因此您可能需要向程序中添加一些其他功能,以获得更多的赞誉,例如改变分数。 获胜者是上次提交有效作品后7天获得最高评价的有效答案。 实际将实现点沿直线而不是其他方式移动的答案受到更多欢迎

30
关闭计算机!
挑战: 用您选择的编程语言,关闭在其上执行代码的计算机。 规则 不会因资源耗尽而关闭(例如:Forkbomb强制关闭) 如果需要,您可以编写仅在特定环境/ OS中工作的代码。 禁止出现标准漏洞 这是代码高尔夫球,因此赢得了最低的字节数!

30
向后打印代码-反向搜索
编写一个程序,将其自身的源代码向后打印出来,即eniuq。 得分: +50(如果您使用来自互联网的提取数据)。 +25,如果您阅读自己的源代码。 每个字符+1点 最低分获胜。 规则: 请勿使用其他文件(例如reverse.txt) 最小代码长度为两个字符。 您的程序不能是回文。
83 code-golf  quine 

30
产生不确定性输出的最短代码
您需要产生不确定的输出。 在这种情况下,这将被定义为表示输出将不会总是相同的结果。 规则: 始终具有相同种子的伪随机数生成器不计算在内。 您可以依靠程序在每次执行的不同(未知)时间运行。 您的代码的进程ID(如果解释器未固定)可以认为是不确定的。 您可能依赖于基于网络的随机性。 您的代码可能不接受非空输入。相关meta post。 不需要暂停程序,但是必须显示输出。 排行榜 显示代码段 function answersUrl(a){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+a+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(a,b){return"https://api.stackexchange.com/2.2/answers/"+b.join(";")+"/comments?page="+a+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(a){answers.push.apply(answers,a.items),answers_hash=[],answer_ids=[],a.items.forEach(function(a){a.comments=[];var b=+a.share_link.match(/\d+/);answer_ids.push(b),answers_hash[b]=a}),a.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(a){a.items.forEach(function(a){a.owner.user_id===OVERRIDE_USER&&answers_hash[a.post_id].comments.push(a)}),a.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(a){return a.owner.display_name}function process(){var a=[];answers.forEach(function(b){var c=b.body;b.comments.forEach(function(a){OVERRIDE_REG.test(a.body)&&(c="<h1>"+a.body.replace(OVERRIDE_REG,"")+"</h1>")});var d=c.match(SCORE_REG);d?a.push({user:getAuthorName(b),size:+d[2],language:d[1],link:b.share_link}):console.log(c)}),a.sort(function(a,b){var c=a.size,d=b.size;return c-d});var b={},c=1,d=null,e=1;a.forEach(function(a){a.size!=d&&(e=c),d=a.size,++c;var f=jQuery("#answer-template").html();f=f.replace("{{PLACE}}",e+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link),f=jQuery(f),jQuery("#answers").append(f);var g=a.language;g=jQuery("<a>"+g+"</a>").text(),b[g]=b[g]||{lang:a.language,lang_raw:g,user:a.user,size:a.size,link:a.link}});var f=[];for(var g in b)b.hasOwnProperty(g)&&f.push(b[g]);f.sort(function(a,b){return a.lang_raw.toLowerCase()>b.lang_raw.toLowerCase()?1:a.lang_raw.toLowerCase()<b.lang_raw.toLowerCase()?-1:0});for(var h=0;h<f.length;++h){var i=jQuery("#language-template").html(),g=f[h];i=i.replace("{{LANGUAGE}}",g.lang).replace("{{NAME}}",g.user).replace("{{SIZE}}",g.size).replace("{{LINK}}",g.link),i=jQuery(i),jQuery("#languages").append(i)}}var QUESTION_ID=101638,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=34718,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:400px;float:left}table thead{font-weight:800}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="language-list"> <h2>Shortest Solution by …
83 code-golf  random 

30
打印一个10 x 10的星号网格
背景 这是一个标准的教科书示例,用于演示循环。 这是大约10年前我开始学习编程时所学的第一批程序之一。 任务 您将打印此确切文本: ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** 眼镜 您可能会有多余的尾随换行符。 每行末尾可能会有多余的尾随空格(U + 0020),包括多余的尾随换行符。 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 显示代码段 /* Configuration */ var QUESTION_ID = 88653; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER …

6
3D ASCII块构建
挑战 编写一个程序,该程序采用11x11整数数组,并构建3D ASCII块构建,其中数组中的每个值表示在与数组位置匹配的坐标处的一列块的高度。负高度是“浮动”列-仅顶部块可见。 例 __________________ ___ /\__\__\__\__\__\__\ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\__\ /\/\__\__\__\__\__\__\ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/__/ /\/\/__/__/__/__/__/__/ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/\__\ /\/\/\__\ /\/\/__/ 1, 0, 0, …

30
我的狗真正听到了什么
我的狗叫雷克斯。每当我责骂他时,他似乎都不会留下深刻的印象,而我唯一看到他的反应就是我念出他的名字时。如果我说 Rex, I told you not to do this! You're making me angry Rex! 他所听到的是 Rex, * **** *** *** ** ** ****! ***'** ****** ** ***** Rex! 挑战:给定一个输入字符串,您的程序必须输出相同的字符串,该字符串中所有字母字符都变为星号,但单词外观上的字符Rex(必须保持原状)除外。非字母字符也保持不变。 详细信息:挑战不区分大小写,因此也rex必须保持不变。该单词Rex可以是另一个单词的一部分,因此例如anorexic必须呈现为***rex**。 更新:由于此挑战的初始文本并未阐明应如何处理下划线或数字或重音符号,因此我对这些字符没有特殊要求。因此,只要正确处理a-zA-Z中的字符(以及示例中提到的字符),解决方案就有效,!".。 测试用例 : 输入: Rex lives in Rexland. 输出: Rex ***** ** Rex****. 输入: To call Rex, just say "Rex". …

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.