Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

30
闪烁大写锁定
大多数计算机键盘都有一个集成的小型LED灯,可通过CAPS LOCK按钮控制当前输入模式。 您的任务是使其闪烁: 打开它; 等待0.5(+/- 0.1)秒; 再次关闭它。 LED闪烁的视频片段受到高度赞赏! 规则 如果需要,您可以使另一个LED闪烁(例如,滚动锁定,数字锁定,Wi-Fi状态等),但是必须物理上位于键盘上; 如果您的语言缺少亚秒级sleep命令,则您的程序可能会使用1秒的延迟,但要加2个字节(这是的代价0.); 您的程序必须至少闪烁一次,然后由您自己决定,即程序可以继续闪烁(在这种情况下,您必须等待相同的延迟,然后才能重新打开),或者暂停等。 如果所选的LED默认情况下为ON,则在系统上,您可以假定在运行程序之前已将其明确关闭(例如,手动关闭); 这是代码高尔夫球,最短的答案以字节为单位。 排行榜 var QUESTION_ID=110974,OVERRIDE_USER=61904;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&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(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.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(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\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:290px;float:left}table thead{font-weight:700}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" …

30
绘制奥运会徽标[关闭]
挑战 绘制奥运会徽标... ...作为字符(例如ASCII)艺术! 样本输出 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * …

30
画冰岛国旗
今年的UEFA Euro 2016已经结束,除了一些负面新闻外,冰岛国家足球队也带来了非常积极的惊喜。让我们画他们的国旗。 输入值 好吧,显然,这一挑战没有任何投入。 输出量 以至少100 x 72像素或25 x 18字符的任何适用视觉格式绘制冰岛国旗。 将输出保存到文件或立即呈现-示例格式为:png,jpg等图像,矢量图形,在HTML画布上绘制,甚至使用非空格字符进行可视化。 使用这些颜色:蓝色:#0048e0,白色:#ffffff和红色:#d72828。 如果你的语言不支持特定的颜色值,使用标准值,红色,蓝色和白色从ANSI颜色代码。 按照正确的比例绘制标志,如下图所示: 样板 您可以编写程序或函数。如果它是一个匿名函数,请举例说明如何调用它。 这是代码高尔夫球,因此最短答案以字节为单位。 不允许出现标准漏洞。 排行榜 显示代码段 var QUESTION_ID = 85141; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var …

30
正在载入…永远
您的挑战是制作一个无限的加载屏幕,如下所示: 或者,更具体地说: 不输入任何内容。 输出Loading...,带有尾随空格,但没有尾随换行符。 通过字符无限循环|,/,-和\:每0.25秒,覆盖最后一个与序列中的下一个。您可以只覆盖最后一个字符,或者删除并重写整行,只要Loading...保持不变即可。 规则 输出文本必须与指定的外观完全相同。尾随换行符/空格是可以接受的。 应该不最初显示输出之前等待0.25秒-第一帧应当被尽快程序运行打印。 您的程序应该可以无限期地运行。例如,如果您将计数器用于帧,则计数器绝不能超过您所用语言的最大值而不会导致错误。 尽管每个“帧”之间的等待时间应该为0.25秒,但显然这永远都不是精确的-允许10%左右的误差范围。 您可以提交功能,但必须将其打印到stdout。 您可以在非控制台(但仍基于文本)的环境中提交答案,只要它能够生成加载动画即可。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜。适用标准代码高尔夫球漏洞。 如有可能,请提供您正在使用的加载屏幕的gif。 例 这是我用来创建示例(unolfed)的C ++代码: #include <iostream> #include <string> #include <thread> using namespace std; int main() { string cycle = "|/-\\"; int i = 0; cout << "Loading... "; while (true) { // Print current character cout << …

30
画法国国旗
已经有许多发布的其他标志的挑战,但没有一个是国旗的法国。这周似乎是合适的时间。 以尽可能少的字节产生此标志: 图片的比例必须为3:2,且尺寸至少应为78像素宽和52像素高。 每个条纹占据宽度的三分之一。 条纹的颜色从左至右分别为RGB: ,(0, 85, 164),。(255, 255, 255)(239, 65, 53) 可以将图像以任何常见的图像文件格式保存到文件中,或通过原始方式通过管道传输到STDOUT,或者可以显示它。 或者,使用ANSI颜色代码为标志输出一个至少由78个字符宽的文本块,该文本块由非空白字符组成,用于描述该标志。(使用标准的蓝色,白色和红色。) 不允许内置标志图像/库。 以字节为单位的最短代码获胜。 排行榜 这篇文章底部的堆栈摘录从答案a)生成排行榜,答案是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下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), 121 bytes 显示代码段 <style>body { …

17
对数组进行异化
从概念上讲,这一挑战非常简单。您会得到一个非负整数列表。如果可能,找到一个非负整数,以便对由组成的列表进行排序。如果不存在这样的输出,那么输出应该是不能被误认为是有效值的任何东西,例如负数,什么都没有,错误等。aiNbi = ai XOR NNN 这是一个例子: [4, 7, 6, 1, 0, 3] 如果我们采用此列表中的每个元素XOR 5,则得到 [1, 2, 3, 4, 5, 6] 排序。(请注意,结果列表不必具有唯一的元素且不包含空格。如果这样的操作的结果[0, 1, 1, 3]仍然是有效的。)另一方面,列表 [4, 7, 1, 6, 0, 3] 没有这样的N存在。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入可以是任何方便的列表或字符串格式。您可以假设小于个,并且列表包含至少一个元素。ai231 您的代码必须在几秒钟内处理任何测试用例(尤其是四个大型用例)。 适用标准代码高尔夫球规则。 测试用例 对于每个不返回的测试用例,-1都有无限数量的正确答案。这里列出的是最小的一个。通过额外设置在输入中所有整数上都相同的位(尤其是那些比列表中最大数目中的最高有效位大的位)来设置其他解决方案。 [4 7 6 1 0 3] => 5 [4 7 1 6 0 …

30
一个简单的TCP服务器
编写一个程序或函数,以侦听端口N上的传入TCP通信。它提供了一种简单的服务:它计算传入连接的IP地址字段的总和并返回。 程序或函数从参数或标准输入读取整数N。它侦听端口N上的传入TCP连接。当有人连接到该端口时,该程序将计算其IP地址字段的总和,并使用尾随的换行符将其发送回客户端并关闭连接。 端口号N是有效端口,并且2 10 <N <2 15 尾随换行符可以是\n或\r\n 您可以使用IPv4或IPv6。由于IPv6地址是以十六进制形式写入的,因此您还必须提供相同格式的结果,例如2001:0db8:0000:0042:0000:8a2e:0370:7334 => 12ecd。 这是代码高尔夫球。适用标准规则和漏洞。 例 您使用运行服务器./server 1234。服务器现在正在运行,正在等待端口1234上的连接。然后,客户端从此127.0.0.1连接到您的服务器。你的服务器执行一个简单的计算:127+0+0+1 => 128并且将结果发送给客户端(与尾随的换行符): 128\n。然后服务器关闭连接并等待下一个客户端。 排行榜 var QUESTION_ID=76379,OVERRIDE_USER=20569;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&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(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.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(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\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:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script …

30
我是回文集。你是?
已经有几个先前 尝试问这个问题,但也符合本网站现代化标准。根据对Meta的讨论,我将其重新发布,以允许在我们现代规则集下进行公平竞争。 背景 甲回文是一个字符串,“读取相同的向前和向后”,即字符串的反向相同字符串本身。我们在这里不是在谈论“方便回文”,而是严格的逐字符反转。例如,()()不是回文,而是())(。 任务 编写一个程序或函数,该程序或函数将字符串S(或您所用语言的适当等价形式)作为输入,并具有一个输出Q(您选择的类型)。您可以使用任何合理的方式获取输入并提供输出。 当输入S是回文时,输出Q应该具有值A(对于任何回文S而言都是相同的)。 当输入S不是回文时,输出Q应该具有值B(对于任何非回文S而言都是相同的)。 A和B必须彼此不同。 换句话说,将所有回文映射到一个值,将所有非回文映射到另一个值。 另外,您编写的程序或函数本身必须是回文式(即其源代码必须是回文式),这成为源代码受限的挑战。 澄清说明 尽管true和false是A和B的明显选择,但是您可以对“是回文”和“不是回文”输出使用任意两个不同的值,而不必是布尔值。 我们在这里在字符级别定义字符串反转;éé不管程序是以UTF-8还是Latin-1编码,它都是回文,即使它不是UTF-8编码后的八位字节回文序列。 但是,即使您的程序包含非ASCII字符,它也只需要用于ASCII输入即可。具体来说,输入S将仅包含可打印的ASCII字符(包括空格,但不包括换行符)。除其他外,这意味着,如果将输入视为字节序列而不是字符序列,则程序仍可能符合规范(除非您语言的I / O编码很奇怪)。因此,仅在检查程序具有正确的形式时,前一项目符号中回文的定义才真正重要。 将程序隐藏在注释或字符串文字中的一半是合法的,尽管这是不合法的。您的评分是根据长度而不是创造力进行的,因此请随意使用“无聊”的方法来确保您的程序是回文。当然,由于您的评分很长,因此程序中什么都不做的部分会使您的成绩更差,因此,如果可以管理程序,则可以同时使用程序的两半。 由于胜利标准是以字节为单位的,因此您需要指定编写程序的编码,以便能够对其进行评分(尽管在许多情况下,很明显您正在使用哪种编码)。 胜利标准 即使该程序需要在字符级别上成为回文,但我们仍使用字节来查看谁获胜。具体来说,程序越短(以字节为单位)越好;这是一个代码高尔夫挑战。为了允许比较提交(尤其是使用相同语言的提交),请将程序的字节数放在提交的标头中(如果字符数与字节数不同,则加上字符数)。

16
模拟宇宙!
图灵完备语言的一个不错的特性是,它可以用来编写任何程序,甚至可以模拟整个宇宙。 您的工作就是做到这一点:编写一个模拟Universe的程序。 注意:尽管我毫不怀疑您将能够完成此任务,但如今我没有足够的业余时间来验证模拟中的所有10 90个粒子是否都按其实际应做的工作。因此,仅是为了简化测试和评估,如果您的Universe模拟器仅适用于单个起始粒子就足够了。为了使事情有趣,让我们假设这个粒子是最近发现的希格斯玻色子。 您的宇宙仅以一个中间约120 GeV的希格斯玻色子开始。为了不使输出太长,让我们使该Universe仅在10 -25秒处滴答,而不是其“常规时钟频率”为5.4×10 -44秒。 希格斯玻色子的衰变半衰期为1.6×10 -22秒,因此迟早会衰变,因此在模拟的每个滴答声中,衰变的可能性为0.0433%。您可以在此处检查它会衰减成什么。为了有一个集中的简化需求,我列出了您应该使用的分支比率: 运行模拟 在每次模拟时,希格斯玻色子都有0.0433%的衰减机会。如果发生这种情况,它将分解为具有列出的概率的以下粒子(您应该在输出中使用这些名称): 底夸克+底夸克(64.8%) 2 W玻色子(14.1%) 2加仑(8.82%) 头蛋白轻蛋白+头蛋白轻蛋白(7.04%) 夸克+夸克(3.27%) 2个玻色子(1.59%) 2个光子(0.223%) 1 Z玻色子+ 1光子(0.111%) 介子+反介子(0.0244%) 顶夸克+顶抗夸克(0.0216%) 总计为100%。 这些粒子中的一些会进一步衰减。 W玻色子:半衰期为10 -25秒,这意味着每个滴答声都有50%的机会分解为下列概率相等的下列之一: 正电子+中微子 反介子+中微子 Antitau Lepton +中微子 Z玻色子:半衰期为10 -25秒,这意味着在每个刻度上都有50%的机会分解为下列其中之一: 中微子+抗中微子(20.6%) 电子+正电子(3.4%) 介子+反介子(3.4%) 牛头顿+牛头顿(3.4%) 下夸克+下夸克(15.2%) 夸克+夸克(15.2%) 底夸克+底夸克(15.2%) 夸克+反夸克(11.8%) 夸克+夸克(11.8%) 顶夸克:半衰期为5×10 -25秒,这意味着在每个刻度上有12.95%的机会衰减为以下几率,并且概率相同: 玻色子+夸克 玻色子+夸克 W玻色子+底夸克 …

16
可能会以多种语言辞职
尽管您提出了抗议,您的老板还是让您开始工作在一个程序中,该程序采用一个无符号整数作为输入,如果该整数是质数,则输出字符串“ prime”,如果不是则输出字符串“ not prime”。只要生成的程序简短,就可以选择使用哪种语言。您的老板非常欣赏字符数少的东西。(在打印出源代码之后,他实际上将手动计算字符。) 因此,您最好做到这一点,以最少的字符数为准。 有趣的部分 这只是在您我之间,但是您的程序也应该以另一种语言有效。但是,用这种语言,它应该打印字符串“如果老板发现了,我就退出了。”。反复阅读代码时,请确保您的上司不会发现有隐藏的侮辱,因为他会忘记自己到目前为止是否算过17或18。因此,您可能无法在代码的一部分中使用“老板发现此辞职”中的任何单词,也不能使用这5个单词和它们的字谜。 我创造了赏金的奖金挑战 编写实际上看起来像是在解决未经训练的眼睛的第一个问题并且似乎不包含不必要的字符的程序。其中包括注释和代码段,这些注释和代码段显然没有任何作用。理想情况下,一个外行人会相信您的程序实际上尽可能的短而不被无法管理。有用的评论在这里,虽然可以。 奖金挑战的规则稍微宽松一些,而不是根据容易衡量的标准来判断,您的程序将更多地根据它如何影响我(当然还有选民)来进行判断 我将是哪个条目最接近应得的悬赏的最终裁判。 编辑: 在您的老板数分钟之后,他让您的一个同事为他编写了一个字符计数程序。因此,即使看不见的字符也计入您的字符数。

25
打印代码的负数
考虑边长为N的正方形可打印ASCII字符(代码点0x20至0x7E),如下所示(此处N = 6): =\ g \ 7 m+y "g L ~ e> PHq 我们还要求每一行和每一列至少包含1个空格和1个非空格字符。(以上示例满足了此要求。) 我们将这样一个正方形的负数定义为相同大小的正方形,其中每个空间都用一个非空间替换,反之亦然。例如,以下内容将是上述示例的有效否定形式: 1234 a b cd ZYXWV ! {} [ ] ? 非空格字符的选择无关紧要(只要它们在可打印的ASCII范围内)。 挑战 您要编写一个程序,其源代码的边长为N> 1,并向STDOUT打印其自身的负数。尾随空格具有将被打印。您可能会或可能不会打印单个尾随换行符。 普通的规则也适用,因此您不得直接或间接阅读自己的源代码。同样,您不能假定使用REPL环境,该环境会自动打印每个输入表达式的值。 优胜者是最短边长N的程序。如果出现平局,则以源代码中具有最少非空格字符的提交为准。如果仍然有平局,则最早的答案会获胜。

13
七斜线显示
编写一个程序,该程序接受从0到9的非空字符串,并使用斜杠(,)打印它们在七段显示器上的显示方式。/\ 这些是精确的数字形状: /\ \ \ \/ \ \ /\ / \/ /\ /\ / \ \/\ / \/\ / / \/\ \/ /\ \ /\ \/\ \/ /\ \/\ / 当一个数字接一个数字出现时,它们以对角线形式向上和向右链接,中间是对角线。因此,例如,203将变为: /\ /\ /\ / \ \ /\ \/ / \/ 请注意,1角色占用的空间与其他角色相同。的两行在1显示器的右侧,而不是左侧。 所以159114会变成这样: \ \/\ \ \ \ \ /\ …

9
写一个99的翻译
99(读作“九十九”)是一种全新的Esoteric编程语言(请不要与99混淆,请注意斜体)。您在此挑战中的任务是为99写一个尽可能短的解释器。字节最少的提交将获胜。Tiebreaker转到第一个发布的提交。 由于这个问题比平时更深入,而且我渴望看到好的答案,因此,我将奖励我最喜欢的答案250 rep赏金(不一定是获胜者)。 99规格 99是命令式语言。99程序中的每一行都是一条语句,并且在执行过程中,指令指针从第一行开始,依次遍历每行后续的行,并一路执行。当执行了最后一行时,程序结束。Goto语句可能会重新路由指令指针的路径。 换行符,空格和9是在99程序中唯一重要的三个字符。所有其他字符将被完全忽略。此外,每行上的尾随空格都将被忽略,并且一行中的多个空格将被视为一个空格。(“换行符”是指任何常见的换行编码。您的解释器使用哪种都没有关系。) 所以这个程序: 9 BLAH 99 9a9bb9c9 9 this line and the next have 6 trailing spaces 9 与此程序相同: 9 99 9999 9 9 变数 99中的变量都具有一个或多个9串在一起的名称(9+在正则表达式中)。例如9,99和9999999999是完全不同的变量。自然地,存在无限多个(除非存在内存限制)。 每个变量的值是一个有符号的任意精度整数。默认情况下,每个变量都分配给自己的数字表示形式。因此,除非已将其重新分配,否则变量的值9是数字9,变量的值99是数字99,依此类推。您可以将其视为在将变量明确分配之前将其视为纯数字。 我将V在下面用于指代任意变量名称。 的每个实例V可以替换为9,99,999,9999,等。 陈述 99中有五种不同的语句类型。每行99个程序中的包含一个语句。 此处描述的语法假定所有多余字符均已删除,所有尾随空格均已删除,多个空格的所有序列均已替换为单个空格。 1.无操作 空行是无操作。它什么都不做(除了增加指令指针)。 2.输出 V V一行上的单个变量会将其打印到stdout。 如果V具有的奇数9(9,999等)V,则将打印除以9 的整数(十进制)。 如果V具有偶数9(99,9999等),则将打印代码除以9 的ASCII字符Vmod 128。(即(V / 9) % 128介于0到127之间的值。) …

30
如果程序终止并且没有人看到它,它会停止吗?
现在是时候面对现实了:我们不会永远在这里,但是至少我们可以编写一个程序,即使人类奋斗到最后,它也将比人类长寿。 您的任务是编写一个程序,该程序的预期运行时间大于到Universe结束之前的剩余时间。 您可以假设: 宇宙将在10 1000年后死于熵。 你的电脑: 因为它是由Unobtainium制成的,所以它将比宇宙持久。 具有无限的内存/堆栈/递归限制。 它的处理器速度有限。 您必须证明程序已终止(对不起,没有无限循环)并计算其预期运行时间。 该标准的漏洞适用。 这是一场高尔夫挑战赛的代码,因此符合条件的最短代码将获胜。 编辑: 不幸的是,发现(30分钟后)Unobtainium的不可能范围字段干扰了计算机的内部时钟,使其无法使用。因此,基于时间的程序立即停止。(无论如何,谁会留下一个程序等待其生存的遗产?)。 该计算机处理器与Intel i7-4578U相似,因此一种测量运行时间的方法是在输入较小的类似计算机上运行程序(我希望如此)并推断其运行时间。 讲台 #CharsLanguageUpvotes Author 1 5 CJam 20 Dennis 2 5 J 5 algorithmshark 3 7 GolfScript 30 Peter Taylor 4 9 Python 39 xnor 5 10 Matlab 5 SchighSchagh *于31/08投票

14
我的牛奶过期了吗?
噢,伙计,这个有效期不会用字母写月份!我不知道它是即将于3月10日或10月3日...等等,没有,没关系,今年说2012年(空中接力半使用的奶酪砖到垃圾桶可以像亲) 因此,让我们假设一下,您太忙了,无法尝试推断出这罐marinara应该何时过期。您只需要Cliff Notes版本:过期的可能性有多大?让我们写一些代码! 您知道制造商以以下三种格式之一将日期打印为整数的有序三元组: YEAR MONTH DAY MONTH DAY YEAR DAY MONTH YEAR 而且您知道某些日期只能用一种或两种方式来解释,而不能全部用三种方式来解释:55 55-11-5年份必须是一年,这意味着Twinkies的特殊包装盒已于1955年11月5日到期。年份有时用四位数字表示,而不是两个,可以排除一些选择。如果是两位数,则50..99表示1950..1999,0..49表示2000..2049。 您的工作是编写一个程序或函数,该程序或函数采用一个整数数组,在上述至少一种解释中,该整数是一个有效日期,并输出百分比表示还好。机会百分数只是在今天或之后的日期的有效解释日期的百分比。 如果整数数组是函数[Int]的参数,则它将是您语言的长度为3 的类型,并且如果用作STDIN上的输入,则以破折号,斜杠或以空格分隔(您可以选择)的整数形式给出完整程序。* “今天的日期”可以是通过日期函数获得的今天的实际日期,也可以是STDIN中函数的额外参数或额外参数中给出的日期。可能以Unix纪元为单位,以上述三种方式之一输入另一个年月日三元组,或者以另一种更方便的方式输入。 让我们举一些例子!输入的到期日期将使用短划线分隔,并假设下面的示例今天的日期为2006年7月5日。 14-12-14-对此的两种有效解释(DMY和YMD)都是等效的,2014年12月14日。输出为100,因为此产品绝对仍然不错。 8-2-2006-当然,最后一个数字是一年,因为它有四个数字。可能是2月8日(过期)或8月2日(仍然良好)。输出为50。 6-7-5-可能是任何东西!“ 2006年7月5日”的解释仍然很好(仅一天),但是其余两个都在2005年,应该尽快抛弃。输出为33。 6-5-7-在这里,三分之二的解释是安全的。您可以向上或向下舍入小数,因此66或67都可以。 12-31-99-好的,这是世纪之交的明确定义(从50到99的年份是19XX,而31不可能是一个月)。大脂肪0,您确实应该更频繁地清洁冰箱。 您可以放心地假设任何不符合上述标准的输入都不属于上述输出规则。 没有网络请求或标准漏洞。允许使用日期处理库。这就是代码高尔夫:可能会以最短的程序获胜。 * 如果使用的是Brainfuck或类似的数据类型残障语言,则可以假定输入中前三个字符的ASCII值是日期的整数。当然,这不包括四位数的年份逻辑,但是我认为在Brainfuck上看到针对此问题的解决方案以至于对您不满意,我们会感到惊讶。
98 code-golf  date 

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.