Questions tagged «code-golf»

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

27
您想编码一个雪人吗?
这是一个简单的ASCII艺术雪人: _===_ (.,.) ( : ) ( : ) 让他结识一些朋友。这将是我们ASCII艺术雪人的一般模式: HHHHH HHHHH X(LNR)Y X(TTT)Y (BBB) 所有雪人的前导空格和括号始终相同。不同的字母代表可以单独更改的图案部分。每个部分有四个准确的预设,可以填充哪些ASCII字符。通过为所有八个部分混合并匹配这些预设,我们可以制作各种雪人。 所有预设 (请注意,否则将在空白行上放置空格,以使截面形状始终正确。) H代表帽子 草帽 _===_ 墨西哥帽 ___ ..... 非斯 _ /_\ 俄罗斯帽子 ___ (_*_) N代表鼻子/嘴巴 正常 , 点 . 线 _ 没有 L代表左眼 点 . 大点 o 最大点 O 关闭 - R代表右眼 (与左眼相同。) X是左臂 …

30
数学是事实。编程不是
在数学中,感叹号!通常表示阶乘,并且在论点之后出现。 在编程中,感叹号!通常表示取反,它位于参数之前。 对于这一挑战,我们仅将这些运算应用于零和一。 Factorial 0! = 1 1! = 1 Negation !0 = 1 !1 = 0 取一个零或多个字符串!,然后是0或1,然后是零个或多个字符串!(/!*[01]!*/)。 例如,输入可以是!!!0!!!!或!!!1或!0!!或0!或1。 在!的之前的0或者1是否定和!年代后的阶乘。 阶乘的优先级比否定的优先级高,因此总是优先应用阶乘。 例如,!!!0!!!!确实意味着!!!(0!!!!),或者更好!(!(!((((0!)!)!)!)))。 输出所有阶乘和否定的结果应用。输出将始终为0或1。 测试用例 0 -> 0 1 -> 1 0! -> 1 1! -> 1 !0 -> 1 !1 -> 0 !0! -> 0 !1! -> 0 0!! -> …

30
捣蛋多语
既然万圣节快到了,我想我可能会开始一个有趣的小代码高尔夫挑战赛! 挑战非常简单。您必须编写一个输出trick或的程序treat。 “转弯?” 你可能会问。好吧,让我解释一下: 您的程序必须执行以下操作: 可以使用两种不同的语言进行编译/运行。相同语言的不同版本不计算在内。 当您使用一种语言运行该程序时,应该输出trick,而另一种语言应该输出treat。大小写无关紧要,并且允许在字符串中填充空格字符(请参见示例)。 这是代码高尔夫球,因此以字节数最少的解决方案为准。 一些解释: 有效的输出(仅针对不用于运行两种语言的代码的单词。还添加引号来表示输出的开始或结束。请勿在解决方案中包括它们!): "trick" "Treat" " TReAt" " tRICk " 无效的输出: "tri ck" "tr eat" "trck" 我很想知道您能想到什么!高尔夫快乐! 我想指出,这是我的第一个挑战,因此,如果您对此问题有任何建议,请以评论形式保留。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 …

30
不要谷歌“谷歌”
我们都知道,如果您用谷歌搜索“ google”一词,它将破坏互联网。 您的任务是创建一个接受一个字符串并以最少的Unicode字符返回其长度的函数。 但是,如果给定的字符串为google(小写),则将导致错误。 例如,g('bing')将返回4但g('google')将导致错误。 请提供用法示例,并尽可能给出错误信息。
158 code-golf  string 

16
我的滑动方式合法吗?
大多数Android智能手机都允许用户使用滑动模式打开手机: 某些模式是合法的,而其他则是不可能的。给定输入滑动模式,请返回真或假,以指示给定的输入模式是否合法。 输入项 网格标记为逐行1到9: 1 2 3 4 5 6 7 8 9 输入是一个从头到尾访问的节点组成的数字。例如,上方的滑动模式为12357。 输入可以是十进制数字,字符串或数字列表。它不会包含0,因为没有节点0。 修订:由于许多语言都从0开始索引,因此允许索引0-8。如果您使用0-8,则必须在答案的开头进行说明,并相应地调整测试用例。 规则 每个节点一开始都没有访问,只能访问一次。任何多次访问节点的模式都是错误的。 真实模式必须至少包含一次滑动,因此至少2个节点。 不可能直接跳过另一个未访问的节点。例如,13是虚假的,因为未访问2且直接在线。 只能跳过访问的节点。42631就是一个例子。 否则,线可能会交叉。例如,1524是真实的。 假设节点的宽度微不足道,并且忽略了实际问题(手指的厚度等)。因此,即使在现实中可能很难实现,但16是真实的。 测试用例 1 -> false 12 -> true 13 -> false 16 -> true 31 -> false 33 -> false 137 -> false 582 -> true 519 -> …

4
超编程:N + N,N×N,N ^ N合而为一
编写一个程序,接受N到1到9之间的一个数字。2如果N是1,4如果N是2,6如果N是3,则程序应以其本机形式输出N + NEg输出。 当程序中的每个字符在适当位置被复制,那么它应该是一个程序,在N取(仍从1到9),并输出N×NEG输出1如果N 1,4如果N 2,9如果N 3,等等。 当程序中的每个字符都一式三份时,它应该是一个程序,1如果N为1,4则输入N(仍从1到9),并输出N ^ NEg输出,如果N为2,27如果N为3,387420489如果N为9,等等 不需要9以上的数字,因为10 ^ 10超出了许多语言通常的整数范围。 例 如果您的初始程序是 My_Program! Exit(); 那么它应该能够吸收N并输出N + N。 此外,该程序 MMyy__PPrrooggrraamm!! EExxiitt(());; 应该取N并输出N×N。 最后,程序 MMMyyy___PPPrrrooogggrrraaammm!!! EEExxxiiittt((()));;; 应该取N并输出N ^ N。 不需要四字符程序和其他程序。 规则 输入和输出应为普通格式的十进制数字。您可以使用不同的底数来回答,以炫耀您的代码,但是答案是非竞争性的。 Windows用户可以将其\r\n视为一个字符,因为类似的事情是\r\r\n\n没有意义的,甚至是行不通的。 以字节为单位的最短本机程序(N + N个)获胜。

30
实施真机
一真机(学分转到这家伙能想出它)是一个非常简单的程序,旨在展示一种语言的I / O和控制流。这是真机的作用: 从STDIN获取一个数字(0或1)。 如果该数字为0,则输出0并终止。 如果该数字为1,则永远打印1。 挑战 用您选择的语言编写如上所述的真机。真机必须是遵循以下规则的完整程序: 接受STDIN或可接受的替代方法的输入 如果您的语言不能接受来自STDIN的输入,则可能来自程序中的硬编码变量或适当的等效输入 必须输出到STDOUT或可接受的替代方案 如果您的语言无法输出字符0或1,则可以接受字节或一元I / O。 当输入为时1,它必须连续打印1s,并且仅在程序被终止或内存不足时停止 输出只能是0后跟一个或没有换行或空格,或者是infinite 1,每个1后跟一个或没有换行或空格。除了无法避免的语言解释器的恒定输出(例如问候语,ANSI颜色代码或缩进​​)以外,无法生成其他任何输出。您对换行符或空格的使用必须保持一致:例如,如果您选择在1换行符后输出,则所有换行符或空格后都1必须有换行符。 当且仅当您的语言可能无法在其输入上终止时0,代码才可以进入无限循环而没有任何输出的情况是可接受的。 由于这是一个目录,因此可以竞争之后创建的语言。请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。除此之外,必须遵守所有代码高尔夫球的标准规则。大多数语言的提交都将以适当的预先存在的编码(通常为UTF-8)以字节计分。 目录 这篇文章底部的Stack Snippet从答案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 …
148 code-golf 

30
1,2,嘶嘶声4,4,嗡嗡声
介绍 在我们最近为标准编程练习收集最短解决方案目录的努力中,这是PPCG有史以来第一个香草FizzBu​​zz挑战。如果您希望看到其他目录方面的挑战,请访问“ Hello World!”。和“这个数字是素数吗?” 。 挑战 编写一个程序,打印从1到100(含1和100)之间的十进制数字。但是,对于三倍打印“ Fizz”而不是数字,对于五倍打印“ Buzz”。对于三和五的倍数的数字,请打印“ FizzBu​​zz”。 输出量 输出将是由换行符(\n或\r\n)分隔的数字(以及Fizzes,Buzzes和FizzBu​​zzes)列表。尾随换行符是可接受的,但前导换行符是不可接受的。除了您选择的换行符之外,输出应类似于以下内容: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 …

25
最短的代码合法地懈怠
我是一名开发人员,我不想做自己的工作。我从XKCD知道,最好的借口是代码的编译。因此,我认为我需要一些可以永久编译的代码!而且由于我很懒并且不想键入太多内容,因此必须使用尽可能短的代码来完成。 因此,您的任务是编写一个在语法上有效但会导致编译器进入无限循环的程序。 技术指标 显然,您必须使用具有编译器的语言。 指定每个解决方案中使用的实现。 这是代码高尔夫球,因此最短的有效解决方案(以字节为单位)获胜。 编译器可以终止以耗尽内存或堆栈空间。

1
“不知道”还是“不知道”?
编写一个程序,处理缠结字符串的ASCII艺术表现形式,并确定是否可以将其解缠为简单循环。纠结使用字符表示-并|表示水平和垂直段,以及+代表角。字符串经过其自身的位置如下所示: | | ------- ---|--- | | (Horizontal segment on top) (Vertical segment on top) 字符串的两端连接在一起;没有松散的结局。 如果您的程序确定无法将字符串解开成简单的循环,则应输出单词KNOT。否则,应输出单词NOT。 这是一个代码挑战,因此最短的有效答案(以源代码的字节为单位)将获胜。 限度 ASCII输入最多包含25行,每行80个字符。您可以假定所有行都用相同长度的空格填充。 例子 输入: +-------+ +-------+ | | | | | +---|----+ +-------+ | | | | | | +-------|------------|---+ | | | | +---+ +---+ 输出: KNOT 输入: +----------+ | | …

30
解读源代码
注意:这项挑战现已不再适用于新提交的警察。这是为了确保没有人能够发布仅保持完整状态的提交,因为不再有更多的强盗对挑战感兴趣。 在这场警察和强盗游戏中,每个警察都会编写一个简单的程序来提供单个输出。然后,他们将公开有关其程序的四件事: 语言 程序长度 所需的输出 原始码的加粗版本 然后,强盗必须解扰源代码,以便他们的程序像原始程序一样起作用。 警察规则 您将编写一个简单的程序,强盗将尝试重新创建该程序。 您的原始程序必须具有简单的功能:执行后,它会输出单个字符串/数字并暂停。无论何时何地运行,它都应提供相同的输出,并且不应依赖于额外的库或Internet。 您的程序和输出必须使用可打印的ASCII(允许换行和空格)。输出不应超过100个字符,并且该程序应在不到5秒钟的时间内在合理的机器上运行。您也不允许在程序中使用哈希(或其他加密函数) 然后,您提供源代码的加扰版本和所需的输出。您可以随意保存源代码,只要保留字符即可。 您的分数是您提交的最短的程序,尚未破解。一周的时间后,完整的陈述将变得免疫。为了获得这种豁免,您应该编辑您的答案以显示正确的答案。(澄清:在您给出答案之前,您没有免疫力,仍然会被破解。)最低分获胜。 简单的示例警察答案 Perl,20岁 ellir"lnto Wo d";prH Hello World 要么... Perl,15岁 *3i)xp3rn3*x3t( 272727 强盗规则 强盗会将他们的破解尝试作为答案发布在位于此处的单独线程中。 您尝试破解每个提交。您的破解尝试将是源代码的完整版本。如果您的猜测与描述相符(相同的字符,输出以及所用的语言),并且您是第一个正确的猜测,那么您将赢得一分。重要的是要注意,您的程序不必与原始程序完全匹配,只需使用相同的字符并具有相同的功能即可。这意味着可能有多个正确答案。 得分最高(成功破解)的强盗获胜。 简单示例强盗答案 您的程序是print "Hello World";。(尽管print"Hello World" ;也可以。) 您的程序是 print(3**3x3)x3 安全提交 ASP / ASP.Net,14(Jamie Barker) Befunge-98,15(萤火虫) GolfScript,16岁(Peter Taylor) 19岁的CJam(DLosc) GolfScript,20(用户23013) Perl,21岁(初级) Python,23(mbomb007) Ruby,27岁(历史学家) SAS,28(ConMan) …

30
在C中打高尔夫球的技巧
您在C高尔夫方面有哪些一般提示?我正在寻找可用于编码一般至少在某些程度上针对C的高尔夫问题的想法(例如,“删除注释”不是答案)。请为每个答案发布一个提示。另外,如果您的技巧适用于C89和/或C99,并且仅适用于某些编译器,请提供。
137 code-golf  tips  c 

27
安抚您的Google霸主:绘制“ G”徽标
编写一个程序或函数,该程序或函数采用正整数N,并根据以下*构造输出Google的“ G”徽标的N×N像素图像: 例如,如果N为400,则应输出400×400像素的徽标,并带有正确的尺寸和颜色: 无论N的大小如何,它都应该看起来准确。例如,这里是N = 13: 您的代码不需要连接到互联网。例如,不允许缩放外部托管的svg。(不过,缩放在代码中编码的svg会很好。) 是否可以使用抗锯齿。由你决定。 请注意,“ G”的水平条并未一直延伸到图像的右边缘。圆在切掉之前通常在右边缘向内弯曲。 以字节为单位的最短代码获胜。 *徽标的结构已针对此挑战进行了简化。正确的构造可以在这里和这里看到。

30
最短的错误信息
挑战 编写最短的程序,该程序在编译或执行时会产生比程序本身小的致命错误消息。该错误信息可能不是由程序本身生成的,例如Python的raise。有效答案必须同时包含代码和错误消息。有效答案最短者获胜。 没有错误消息不算作错误消息。 例子(卢阿) 代码(46字节): [ --aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 错误(45个字节): [string "[..."]:1: unexpected symbol near '['

30
在JavaScript中打高尔夫球的技巧
您对使用JavaScript打高尔夫球有哪些一般提示?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于JavaScript(例如,“删除评论”不是答案)。 注意:另请参阅ECMAScript 6及更高版本中的打高尔夫球技巧

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.