Questions tagged «code-golf»

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

30
显示随机的彩色像素
我一直很喜欢充满随机彩色像素的屏幕。他们很有趣,吸引他们的程序也很有趣。 挑战 用彩色像素填充屏幕或图形窗口。 规则 你的程序必须有一个甚至采摘的机会,所有的颜色(即范围#000000到#FFFFFF),或者可以在系统上显示所有颜色。 您的程序必须继续显示随机像素,直到手动停止(它不能自行终止)。 像素可以是任意大小,只要您的输出至少具有40x40 “像素”即可。 您的程序必须以这样的速度运行,使其可以在运行三分钟后至少替换一次屏幕/窗口上的每个像素。 您的程序必须选择真正随机的颜色和点进行替换,即随机选择所有点/颜色的可能性均等。它不能看起来只是随机的。它必须使用pRNG或更好的pRNG,并且每次输出都不能相同。 您的程序在每次迭代中必须有平等的机会选择所有颜色。 您的程序一次只能替换一个像素。 您的程序无法使用Internet或文件系统(/dev/random和/dev/urandom除外)。 例 如果在随机时间停止输出,则输出可能如下所示: 赢家 每种语言中最短的答案将获胜。玩得开心!

30
贝纳迪诺确定不变的美元单词
定义 美元单词是一个单词,其中每个字母都给出一个分值(从a = 1到z = 26),并将这些字母相加,结果为100。这是CodeReview的示例,这是一个列表我在网上找到的美元词汇 输入项 输入将以一种语言的文本数据类型(允许使用数组)从z字母开始。您无需考虑任何其他输入-不会有空格,撇号或连字符。您可以采用小写,大写或组合形式。尾随换行符是允许的。 输出量 如果输入是美元单词,则输出真实值,否则输入错误值。 测试用例 真相: buzzy boycott identifies adiabatically ttttt 虚假: zzz zzzzzzz abcdefghiljjjzz tttt basic 这是代码高尔夫球,因此最短答案以字节为单位!适用标准漏洞和规则。领带去了第一张海报。
47 code-golf  string 

18
像普通人一样吃吃喝玩乐
吃喝玩乐是有5种不同口味的有色糖果。葡萄,青苹果,柠檬,橙和草莓,分别以(p)紫色,(g)reen,(y)黄色,(o)范围和(r)ed表示。我曾经吃过吃喝玩乐的食物,方法是将所有不同的颜色排序,然后按顺序吃。在办公室里看起来有些怪异之后,我现在假装像普通人一样吃它们。您的任务是模拟以下内容: 您的代码(完整的程序或功能)将收到一系列吃喝玩乐(10x10)作为输入(任何合理格式)。这个阵列将代表一堆未分类的吃喝玩乐。您的任务是从最不喜欢的颜色“食用”它们。我首选的订单是葡萄,青苹果,柠檬,橙子,草莓,但是您可以自由选择任何订单,只要订单得到一致执行即可(请在提交的内容中列出您的偏好,以便我们对此做出判断)。吃完每块糖果后,您的代码将输出(以您输入的相同格式)剩下的一堆,被吃掉的糖果用空格代替。您将重复直到只剩下您喜欢的。您可以选择吃吃喝玩乐(可以是随机的也可以是确定性的)。必须保留尾随空格。 例如,您的输出序列可能看起来像这样(为了简洁起见,使用5x5并将空格显示为.) start 1 2 3 4 5 n .org. .org. .org. .org. .or.. .or.. ..r.. prgrg .rgrg .rgrg .rgrg .rgrg .r.rg .r.r. gggpr gggpr ggg.r ggg.r ggg.r ggg.r ....r oyyor oyyor oyyor oyyor oyyor oyyor ....r .r.p. .r.p. .r.p. .r... .r... .r... .r... 这是代码高尔夫球,因此以字节为单位的最短代码获胜 TL; DR规则: 提交的内容可能是完整的程序或功能 可以通过任何合理的方法(STDIN,函数自变量等)以任何合理的格式(字符串,列表,矩阵等)进行输入。但是行之间必须有一些划定 …
47 code-golf 

30
3…2…1…崩溃了!
您的任务是编写一个完整的程序,该程序每次运行时将从10开始递减计数。 首次运行该程序时,应打印10。 下一次,它应该输出9。 下次,它应该输出8,依此类推。 0该程序应崩溃而不是打印。之后,您不必处理程序再运行任何次。 在第一次执行程序之前,可以假定用于存储的任何设备为空。 这是Python 3中的示例实现: try:f=open("a","r+");v=int(f.read()) except:f=open("a","w");v=10 1/v print(v) f.seek(0) f.write(str(v-1)) 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。

3
全天候编码
编写一个单行程序,两个或更多字符长,不包含任何行终止符且不输入任何内容。例如,您的程序可能是: MyProgram 当您的程序排列成12、3、6和9点钟的形状时,它需要输出相应的小时数。没有其他时间需要支持。 特别: 当您的程序排列成12时(🕛)的时针时 m a r g o r P y M 运行它应该输出12。 当您的程序像三点钟的指针一样排列时(🕒) m a r g o r P y MyProgram 运行它应该输出3。 当您的程序排列成6点钟(🕕)的时针时 m a r g o r P y M y P r o g r a m 运行它应该输出6。 当您的程序像9点钟(clock)的时针一样排列时 ........m ........a ........r ........g …

23
从“无限”倒数
似乎是不可能完成的任务吧?好吧,实际上并不难。如果将单词写Infinity为8位二进制ASCII代码,则会得到: 01001001 01101110 01100110 01101001 01101110 01101001 01110100 01111001 可以串联并转换为十进制值5291279215216915577。现在是我们可以使用的数字... 您将倒数的方式是: 将原始字符串输出为十进制数字(如上所示) 删除其二进制表示形式中的前导0(如果有) 切换二进制表示形式的位(1-> 0,0-> 1) 输出十进制数字 重复步骤2-4,直到达到0。 挑战: 创建一个程序或函数,该程序或函数将字符串作为输入,并输出(以任何合适的格式)执行上述步骤时所得到的数字。 测试用例: 我认为这个挑战将非常容易理解,尽管它只是一个测试用例。我将使用Inf而不是Infinity使它简短。 Inf 4812390 (10010010110111001100110) 3576217 ( 1101101001000110011001) 618086 ( 10010110111001100110) 430489 ( 1101001000110011001) 93798 ( 10110111001100110) 37273 ( 1001000110011001) 28262 ( 110111001100110) 4505 ( 1000110011001) 3686 ( 111001100110) 409 …

16
堆栈溢出
(受此问题启发) 目的 您的任务是编写一个程序或函数以将ASCII版本的Stack Overflow徽标打印到STDOUT \|/ (-) (-) (-) (-) 您的程序应采用两个输入,此处称为H和N。堆栈“容器”的高度(括号)由H确定。堆栈中的项数由N确定。如果N> H,则堆栈将“溢出”。 输入输出 H将确定容器的高度 例如: H = 1: ( ) H = 2: ( ) ( ) H = 3: ( ) ( ) ( ) H将始终至少为1 N将确定堆栈中有多少个项目。以下示例均为H = 2: N = 0 ( ) ( ) N = 1 ( …

30
让我们画一些Atari ST炸弹!
介绍 在雅达利ST是从80年代中期到90年代初的时代,搭载了摩托罗拉68000微处理器一个相当流行的个人电脑。在这台机器上,未捕获的CPU异常的操作系统的默认行为是在屏幕上显示一行炸弹,如下图所示: 来源:https ://commons.wikimedia.org/wiki/File : Row_of_bombs.png 注意:取决于操作系统版本,炸弹图形可能会略有不同。但是,让我们以此作为参考。 炸弹的数量取决于异常向量,最常见的是: ($ 008)巴士错误:2枚炸弹 ($ 00c)地址错误:3枚炸弹 ($ 010)非法指令:4枚炸弹 目标 您的目标是编写一个程序或函数,以打印或输出此类Atari ST炸弹的ASCII艺术作品。 输入项 表示要显示的炸弹数量的整数。您的代码必须支持最常见的值:2、3和4。支持越来越少的炸弹是可以的,但既不是必需的,也不受奖励。 输出量 原始炸弹由16x16像素的图块组成,此处以ASCII和二进制形式表示: ....##.......... 0000110000000000 .#.#..#......... 0101001000000000 .......#........ 0000000100000000 #..#....#....... 1001000010000000 ..#...#####..... 0010001111100000 ......#####..... 0000001111100000 ....#########... 0000111111111000 ...###########.. 0001111111111100 ...###########.. 0001111111111100 ..#############. 0011111111111110 ..########.####. 0011111111011110 ...#######.###.. 0001111111011100 ...######.####.. 0001111110111100 ....#########... 0000111111111000 .....#######.... …

30
每日#7高尔夫:一个明显随机的角色
关于系列 这是“每日随机高尔夫”系列的嘉宾条目。 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 输入项 没有输入。 输出量 单个字母(不区分大小写),以及可选的尾随换行符。每个字母的选择概率必须为非零,并且所有26个概率必须是不同的。要消除所有歧义,请执行以下操作:Distinct表示不得存在两个彼此相等的概率。 计分 这是代码高尔夫。以字节为单位的最短代码获胜。 有效条目是一个完整的程序或函数,其终止的可能性为零。 字母 为避免混淆,要使用的特定字母是拉丁字母: 要么 ABCDEFGHIJKLMNOPQRSTUVWXYZ 要么 abcdefghijklmnopqrstuvwxyz 您可以选择输出大写或小写。或者,如果有帮助,您可以选择在不同的运行中输出不同的案例。给定字母的概率是在两种情况下(大写或小写)该字母出现的概率。 说明 由于从输出中根本看不出来,因此请对如何获得26种不同的概率作一个清晰的解释。 排行榜 (从这里开始) 显示代码段 var QUESTION_ID=89621,OVERRIDE_USER=20283;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 …

30
一个数字是多少?
古希腊人把这些东西称为单双偶数。单个偶数的示例是14。它可以被2除以一次,并且在那一刻成为奇数(7),此后不再可以被2整除。双偶数是20。可以将其除以2两次,然后变为5。 您的任务是编写一个函数或程序,该函数或程序将整数作为输入,并输出可被整数整除2的次数,并以尽可能少的字节数输出。输入将为非零整数(在您的语言范围内,任何正值或负值)。 测试用例: 14 -> 1 20 -> 2 94208 -> 12 7 -> 0 -4 -> 2 字节数最少的答案将获胜。 提示:尝试将数字转换为基数2。请参阅提示。

30
“做错了”的成语
做错事 今天在工作中,我的一位同事正在描述do while(false)的用例。他正在与之交谈的人认为这很愚蠢,而且如果陈述会更好,那就简单了。然后,我们浪费了一半的时间来讨论编写等同于以下内容的最佳方式: do { //some code that should always execute... if ( condition ) { //do some stuff break; } //some code that should execute if condition is not true if ( condition2 ) { //do some more stuff break; } //further code that should not execute if condition …
47 code-golf 

17
修复Froot Loop项链
假设您要在项链,手链,鞋带或其他物品上串一串Froot Loops。有6层环的颜色:- [R编,ö范围,ÿ ellow,克颖,b略,和p urple。您希望您的线束从最左边的红色开始,以彩虹顺序向右循环,以紫色结束。就是说,您想要这样做,以便您的链可以由roygbp重复多次(可能为0)的字符串表示。 问题是,您已经串起了循环,没有按任何特定的顺序进行。您应该吃还是不吃哪个循环,以便最大程度地增加从左到右的正确彩虹循环次数,第一个循环为红色,最后一个循环为紫色? 编写一个程序或函数,该程序或函数接受任意字符串,roygbp并打印或返回相同长度的字符串,e以代替要吃的循环和不吃东西n的循环。 例如,如果您的Froot Loop链看起来像 输入将是 gorboypbgbopyroybbbogppbporyoygbpr 从左到右,我们可以找到3个完整的roygbp彩虹序列,但是有些循环需要被消除。因此输出将是 eenenneennenennneeeeneennenennnnne 产生一个完美的3周期链: 如果输入中没有完整的彩虹周期,则输出将全部为e,并且线束最终无环。例如输入proygb有输出eeeeee。相反,proygbp具有输出ennnnnn。 您可以假设所有输入链都至少有一个循环。 以字节为单位的最短代码获胜。
47 code-golf  string 

30
视网膜还是垃圾?
我们生活在一个技术时代,可以在电视上显示精美的8K屏幕,甚至可以在手机上使用2K显示屏,以享受移动浏览的乐趣。近年来,在屏幕技术方面,我们已经走了很长一段路。 其中一个产品是苹果公司Retina所流行的术语。这是指所讨论的显示器的像素密度非常高,以至于在10-12英寸的观看距离处,不容易拾取单个像素。 史蒂夫·乔布斯(Steve Jobs)表示,发生这种情况的像素密度大约为每英寸300像素,并且他们开始在设备上采用此范围内的像素密度,并使用Retina流行语来做广告。 像素密度可以通过以下公式计算: 其中d,屏幕的对角线以英寸w为单位,水平轴上h的像素数,垂直轴上的像素数。 你的任务 对于此任务,您将使用Retina标准来确定哪些产品值得购买。身为现代消费者,在购买设备时,您要确保自己获得的是好产品,而不是90年代的某些设备!因此,您想构建一个程序或函数,将屏幕的宽度,高度和对角线长度作为输入或函数参数,并D > 300通过打印到屏幕或返回来告诉您特定屏幕是否符合视网膜屏幕()的要求。 由于您鄙视非Retina设备,因此您的程序或函数将Retina!在设备合格或不合格Trash!时输出。 您可以假设所有数字都大于0。宽度和高度的像素值将始终为整数。屏幕大小可以任何方式解释,只要它支持小数。输入可以按照您选择的任何顺序进行,也可以多达3条单独的行。 示例I / O 1920 1080 4.95 -> Retina! 2560 1440 5.96 -> Retina! 1920 1080 10.5 -> Trash! 10 10 0.04 -> Retina! 4096 2160 19(.0) -> Trash! 8192 4320 100.00 -> Trash! 3000 1500 11.18 -> Retina! …
47 code-golf 

16
Sierpinskified代码
编写一个矩形的文本块,当该文本块布置在Sierpinski地毯中时,使用相同大小的空白区域作为空白部分,以创建一个输出地毯迭代次数的程序。 例如,如果您的文本块是 TXT BLK 然后运行程序 TXTTXTTXT BLKBLKBLK TXT TXT BLK BLK TXTTXTTXT BLKBLKBLK 应该输出,1因为程序的形状代表了Sierpinski地毯的第一次迭代。 同样,正在运行 TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK BLKBLK BLKBLK BLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXT TXT TXT TXT BLK BLK BLK BLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK …

15
每日ASCII艺术#1-双结
编写一个完整程序或一个函数,该程序或函数需要一个正整数N作为通过STDIN /命令行/ ARGV或函数参数的输入,并打印一个N与STDOUT 相对应的ASCII双结。 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.