Questions tagged «code-golf»

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

14
厕纸之谜
今天,您需要解决一个非常实际的问题:您的厕纸卷上需要多少循环才能容纳一定数量的纸张?让我们看一些事实: 裸露卫生纸筒的直径为3.8厘米 一张卫生纸的长度为10厘米。 一张卫生纸的厚度为1mm。 第一次缠绕圆柱体之前,其周长为3.8 * pi(厘米)。每次在圆柱体上缠绕一张纸时,其半径都会增加.1,因此其周长会增加.2 * PI。使用此信息可以找出装入n张厕纸所需的循环次数。(注意:使用近似值Pi至少应与3.14159一样准确)。 测试用例: n = 1: 10 /(3.8 * pi)= .838循环 n = 2: (我们可以进行多少个完整循环?)1个完整循环= 3.8 * pi = 11.938。 (在第一个循环之后,我们还剩下多少?)20-11.938 = 8.062 (剩下的第二个循环产生多少?)8.062 /(4 * pi)= .642循环 答案:1.642次循环 n = 3: 第一个完整循环= 3.8 * pi = 11.938,第二个完整循环= 4 * pi = 12.566 …

30
使硬币公平
您有一枚可产生0或的硬币1。但是您怀疑硬币可能有偏差,这意味着0(或1)的概率不一定是1/2。 由冯·诺伊曼(von Neumann)提出的一种众所周知的将“有偏见的硬币”“转化”为公平硬币的过程(即获得同样可能的结果)如下。产生(不重叠)两个掷硬币的区块,直到一个区块的两个值不同为止;并在该块中输出第一个值(第二个值也可以,但是出于挑战的目的,我们选择第一个)。直观地看,1可能比更容易0,但01和10将同样有可能。 例如,输入1110...将丢弃第一个块,然后1从第二个块产生a ,... 此过程很昂贵,因为要消耗多个硬币才能产生单个结果。 挑战 取零和一的有限序列(代表原始硬币的抛弃),并根据上述过程产生最大数量的结果,直到消耗完所有输入为止。 如果输入值的数量为奇数,则最后一个块可能不完整。例如,输入序列11111将不产生结果(前两个块具有相等的值,而第三个块不完整)。 规则 输入可以具有任意数量的非负值,不一定是正数或偶数。 输入格式可以是: 零和一的数组; 一串零和一,并带有可选的分隔符。 输出格式可能是: 一串零和一,带或不带分隔符; 零和一的数组; 包含单个零或一的字符串,以换行符分隔; 适合您的语言的任何相似,合理的格式。 代码高尔夫。最少的字节数获胜。 测试用例 这里假定输入和输出为字符串。 Input --> Output '1110' --> '1' '11000110' --> '01' '1100011' --> '0' '00' --> '' '1' --> '' '' --> '' '1101001' --> '0' '1011101010' --> '1111'

2
塔会平衡吗?
介绍 给定一个ASCII塔和风的作用力,编写一个程序或函数来确定塔是否平衡或以哪种方式掉落。 例如,第一座塔平衡了,但是第二座向左倒了。 # # # # ### ### ### ### # # # # ##### ##### ### ### ### # 这是我的第一个挑战。我希望你喜欢它。 方向 塔由相连的砖块组成,#并构成一个刚性物体。每个块是一个正方形,其宽度和高度为一个单位,并且具有恒定的密度。塔上有两种作用力,即重量和风力。所有力分别作用在每个块上,并穿过块的中心。 由于其重量,每个块都具有一个作用在其上的向下力。 而且,在其迎风侧上没有与其相邻的另一个块的每个块具有在其上沿风向水平作用的力。该力的大小作为输入给出。 风的方向由输入中某处的ASCII标志指示。当且仅当风不为零时,输入中才会有一个标志。该标志不影响任何力量。 该标志将与下面显示的完全一样。 Flag design and corresponding wind direction: o~~ ~~o |~~ ~~| ---> <--- 为了澄清起见,该塔是坚固的物体,不会破碎,也不会附着在地面上。但是,您的程序应分别计算每个砌块的力,以确定塔架是否平衡。 例 o~~ |~~ # # > > ### >## …

27
建立节拍器
介绍 几天前,我需要节拍器来做一些事情。我没有空,所以我从App Store下载了一个应用。该应用程序的大小为71 MB !!! 71 MB用于制作tic-toc ...?! 所以我想到了代码高尔夫球,我想知道你们中的某些人是否可以改善这一点。 挑战 寻找一些输出声音的代码。什么样的声音是无关紧要的。如果需要,创建一些声音文件...但是系统提示音也可以完成。(这是我创建的一些声音……没什么特别的。) 输入:节拍器每分钟的节拍输出。 例 这是非高尔夫Java版本!只是为了向您展示任务。 public class Metronome { public static void main(String[] args) throws InterruptedException { int bpm = Integer.valueOf(args[0]); int interval = 60000 / bpm; while(true) { java.awt.Toolkit.getDefaultToolkit().beep(); // or start playing the sound Thread.sleep(interval); System.out.println("Beep!"); } } } …
36 code-golf  music  audio 

14
总和为15
编写一个程序或函数,该程序或函数将非负整数数组作为输入,并按顺序输出带有输入数组元素的一组向量/数组,并进行拆分,以使每个向量的总和为15。 N个元素不会“命中15个”,那么必须使通过15个元素的数字被截断,其余元素将成为下一个向量的第一个元素。直到您到达输入数组的末尾为止。如果最终向量的总和小于15,则必须在末尾添加一个数字以使总和增加。 通过查看示例,我认为规则更容易理解: Input: 3 7 5 10 Output: 3 7 5 <- Sum is 15 10 5 <- 5 is added to make the sum 15 Input: 2 4 5 9 2 3 5 0 2 4 5 0 3 Output: 2 4 5 4 <- Sum 15. 9 …

22
首字母缩略词确实可以明显缩小您的消息感应器
因此,如果短语是单词的缩写,则需要一种更好的方法来解决。您还认为,看看所涉及的短语和单词是否是递归首字母缩写是值得的。 你的任务: 给定一个单词,然后给出一个由行分隔的词组,如果该词组是首字母缩写词,然后是递归首字母缩写词,则输出。(该短语包含其含义) 输入将由字母字符以及空格组成。 您的程序不应区分大小写。 输入/输出示例: 情况1: 输入: Acronyms Acronyms can really obviously narrow your message sensors 输出: True True 情况2: 输入: FAQ frequently asked questions 输出: True False 情况3: 输入: foo bar baz 输出: False False 情况4: 输入: GNU GNU is not Unix 输出: False False 情况5: 输入: Aha …

1
“填充网格”问题
具有简单规则但非平凡算法的挑战。:-) 任务 以空格分隔的整数形式输入: N A B S 其中N是2D正方形矩阵的边长,其中A和B之间(包括两端)填充有唯一数字(整数)。对于此矩阵中的每一行和每一列,总和始终相同:S。(换句话说,矩阵是一个半魔术正方形)。 注意: 所有数字均为正。例外是A,可以为0。 例子 对于 3 1 10000 2015 一个有效的解决方案是 对于 8 1 300 500 一个有效的解决方案是 输出量 您输出的应该是ASCII表。上面第一个示例的示例: 384 159 1472 1174 499 342 457 1357 201 用空格填充的右对齐整数。每列的宽度是该列中最大整数的宽度。 计分 这是代码高尔夫球,因此以字节为单位的最短代码获胜。存在标准漏洞(尤其是有关解决此问题的内置漏洞)。您不必担心错误或其他不可能的输入(包括负数)。请为上面的第二个示例在您的答案中(强制性)提供示例输出。
36 code-golf  math  grid 

30
加泰罗尼亚语数字
该Catalan数(OEIS)是自然数常常出现在组合的序列。 第n个加泰罗尼亚语数字是Dyck单词的数目(括号中的平衡字符串或方括号,例如[[][]];正式定义为使用两个字符a和b的字符串,这样从开头开始的任何子字符串的字符数都大于或等于number b个字符,整个字符串具有相同的a和b个字符),长度为2n。第n个加泰罗尼亚数字(对于n> = 0)也明确定义为: 从n = 0开始,前20个加泰罗尼亚数字为: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190... 挑战 编写一个完整的程序或函数,该程序或函数通过STDIN或可接受的替代方法获取非负整数n,并输出第n个加泰罗尼亚数字。您的程序必须至少对输入0-19有效。 输入输出 输入值 您的程序必须根据此meta post接收来自STDIN,函数参数或任何可接受的替代方法的输入。您可以将输入的数字读取为标准的十进制表示形式,一进制表示形式或字节。 如果(且仅当)您的语言无法从STDIN或任何可接受的替代方法中输入内容,则它可能从程序中的硬编码变量或适当的等效语言中获取输入。 输出量 您的程序必须根据此meta post将第n个加泰罗尼亚编号输出到STDOUT,函数结果或任何可接受的替代方法。您可以以标准的十进制表示形式,一元表示形式或字节形式输出加泰罗尼亚数字。 输出应包含适当的加泰罗尼亚语数字,并可以选择后面跟着一个或多个换行符。除了无法避免的语言解释器的恒定输出(例如问候语,ANSI颜色代码或缩进​​)以外,无法生成其他任何输出。 这并不是要找到最短的语言。这是关于寻找每种语言中最短的程序。因此,我不会接受答案。 在此挑战中,只要具有实现方式,就可以接受比挑战新的语言。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。除此之外,必须遵守所有代码高尔夫球的标准规则。大多数语言的提交都将以适当的预先存在的编码(通常为UTF-8)以字节计分。另请注意,允许使用内置函数来计算第n个加泰罗尼亚语数字。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes …

4
成功导航小行星场
介绍 每个人都知道,成功导航小行星场的可能性约为3,720:1。但是尽管有您的警告,Han Solo仍然愿意尝试自己的运气。 出于对人造生活的恐惧,您决定使用飞船特有的方言(请参见:首选的“高尔夫语言”)进行编码,避免使用小行星程序,该程序将决定采用小径ASCII迷宫的路径。 输入值 Millenium Falcon拥有一个小行星场制图程序,该程序提供类似于以下数据: | ##### ######### | | ###### # ### # | | # # # # #### # | @ ## #### |# # # ### ## | |## ## #### # # | |#### ##### # ## | 顶部排在猎鹰的左边,底部排在猎鹰的右边,而列代表船前的东西。 每个#都是障碍。 每个空间都是飞船可以飞入的空白空间。 输入始终为7个字符高。这是小行星映射宽度限制。 输入始终为32个字符长(字段本身为30个字符,开始和结束限制为2个字符)。这是小行星映射深度限制。竖线|标记映射的开始和结束。 …
36 code-golf  maze 

18
直观地解释勾股定理
勾股定理的常见视觉解释如下: 正方形用来表示边长的平方,以及的面积a + b = c,就像毕达哥拉斯定理所说的那样。 这部分是您必须显示的。 你的任务 您将获得两个整数作为输入,表示整数a和b直角三角形(例如3, 4)。 然后,您将方块出长度a,b以及c走出的#人物。例如这里是3: ### ### ### 然后,将它们格式化为一个数学方程式,以解释特定的毕达哥拉斯三联体: ##### #### ##### ### #### ##### ### #### ##### ### + #### = ##### 请注意=和+符号在两边都留有空格,而所有内容都在底部。 你永远不会了解get值a和b使c非整。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 (一旦我有时间,就会有更多东西来,这些真的很难手工制作) 3, 4 ##### #### ##### ### #### ##### ### #### ##### ### + #### = ##### …

10
告诉我我必须做多少数学问题!
我的老师总是给我做作业中最复杂的数学问题。像:pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even。我想提前知道有多少时间留给我的家庭作业,但我不想弄清楚所有这些。这就是为什么要为我编程的任务。 技术指标 您将得到一个字符串,详细说明我必须以args,stdio等形式完成的问题。 它们将以逗号分隔(可能comma-space分隔) 它将仅以数字形式包含单个问题(例如79) 和形式的范围17-18(同样,您必须处理可选空格) 范围包括两端 该范围可以选择加odd或后缀even,您必须考虑这些范围。 一组范围/页面将以格式的页码开头pg. 545:,再次必须处理可选的空格。您可以放心地忽略这些,因为您需要在所有页面上都解决问题 文本可以大写或小写,但不能同时使用。 Return,stdout等我必须做的家庭作业的数量。 由于这是代码高尔夫球,因此以字节为单位的最短代码将获胜! 测试用例 pg. 546: 17-19, 22, 26, pg. 548: 35-67 odd, 79, 80-86 even -> 27 pg. 34: 1 -> 1 PG. 565: 2-5,PG.345:7 -> 5 pg. …

7
数字作为圆形图形
首先,研究这个难题以了解您将要产生的东西。 您面临的挑战是编写一个程序或函数,该程序或函数将输出一个圆形图形(类似于拼图中的图形),并给出(以10为基数)介于1和100(含)之间的数字。这类似于此挑战,除了您将生成图形而不是罗马数字。以下圆圈从左到右代表数字1-10: 作为对谜题状态的答案,您的图形应该从内到外看起来像罗马数字,其中线条粗细代表罗马数字符号,整个图形代表数字。供您参考,这是您需要的线宽。每行和下一行之间应有3px的填充。 Number Roman Numeral Line Width 1 I 1px 5 V 3px 10 X 5px 50 L 7px 100 C 9px 请发布您的输出中的一两个示例。假设输入正确,标准漏洞等等。这是代码高尔夫,所以最少的字节获胜。如果出现平局,大多数选票将获胜。祝好运!

9
以正确的顺序吃糖果
说到吃糖果,我比一般的外行人坚持更高的标准。在“混合使用”与“保存最佳结果到最后”之间存在微妙的平衡。 在此挑战中,您将获得一个字符串,其中每个字符代表一块糖果。不同的字符(区分大小写)代表不同类型的糖果。然后,您的程序必须根据以下步骤确定正确的糖果消费顺序。您可以编写一个完整的程序(STDIN / STDOUT)或一个命名函数来完成此任务。 假设我的糖果藏起来了oroybgrbbyrorypoprr。首先,我使用较低的ASCII字符值作为平局,将糖果分成相同类型的堆,顶部数量较大。 rrrrrr oooo bbb yyy pp g 然后,我拿走每一排糖果,并按一定间隔将它们等距放置。例如,如果有3块糖果,则将1个放置在方式的1/3处,将2/3的方式放置在末尾。 .r.r.r.r.r.r ..o..o..o..o ...b...b...b ...y...y...y .....p.....p ...........g 然后,我逐列向下创建最终的糖果订单rorbyroprbyorrobypg。 输入值 包含糖果存放区的字符串。上面示例的输入可能是: oroybgrbbyrorypoprr 输出量 包含糖果的细绳重新组织成正确的食用顺序。 rorbyroprbyorrobypg 计分 这是代码高尔夫。以字节为单位的最短答案将获胜。适用标准代码高尔夫球规则。

28
Java对JavaScript就像汽车对地毯一样
标题被盗灵感来自格雷格Hewgill的回答到什么是JavaScript和Java之间的区别? 介绍 Java和JavaScript是程序员常用的语言,并且是Stack Overflow上最流行的标签。然而,众所周知,除了名字相似外,两者几乎没有共同之处。 为了纪念编程界最臭名昭著的辩论之一,并受到我最近对标记搜索的不满启发,我提出以下建议: 挑战 编写一个将字符串作为输入的程序。返回car如果字符串开头的“Java”和不包括“的JavaScript”。否则,返回carpet。 输入和输出示例 汽车: java javafx javabeans java-stream java-script java-8 java.util.scanner java-avascript JAVA-SCRIPTING javacarpet 地毯: javascript javascript-events facebook-javascript-sdk javajavascript jquery python rx-java java-api-for-javascript not-java JAVASCRIPTING 笔记 输入匹配不区分大小写 输出的唯一可能性应该是car或carpet 如果您的答案使用Java,JavaScript或Regex,则可获得虚构的奖励积分 备用标题:Java是JavaScript,就像火腿是仓鼠

5
字母,数字,符号,空格,重复
人们经常会遇到97个ASCII字符。它们分为四类: 字母(共52个) ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 数字或数字(共10个) 0123456789 符号和标点符号(共32个) !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 空格(共3个) 空格 ,制表符\t和换行符\n。(我们会将换行符\r\n视为一个字符。) 为简洁起见,我们将这些类别分别称为L,N,S和W。 选择LNSW您想要的字母的24个排列中的任意一个,然后无限重复,以形成自己的编程模板。 例如,您可以选择permutation NLWS,因此您的编程模板为: NLWSNLWSNLWSNLWSNLWS... 您需要基于此模板编写程序或函数,其中: 每个L字母都替换为任何字母(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)。 每个数字N都替换为任何数字(0123456789)。 每个S符号均替换为任何符号(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)。 每个W都将替换为任何空格字符( \t\n)。 基本上,您的代码必须遵循以下模式 <letter><number><symbol><whitespace><letter><number><symbol><whitespace>... 如问题标题所建议的那样,除非您可以根据需要选择四个字符类别的不同顺序。 注意: 类别的替换可以是不同的字符。例如,9a ^8B\t~7c\n]有效地符合模板NLWSNLWSNLWS(\t和\n将它们的字面字符)。 没有代码长度限制。例如1A +2B -and 1A +2B和1A and 1都符合模板NLWSNLWSNLWS...。 符合模板的代码必须执行的操作是接受一个未扩展的ASCII字符,并根据其在上述分类中所属于的类别,输出一个介于0到4之间的数字。也就是说,1如果输入是字母,2数字,3符号和4空格,则输出。输出0如果输入是没有这些(一个控制字符)。 对于输入,您可以选择输入0到127之间的一个数字(包括0和127),代表输入ASCII字符的代码。 您的代码必须具有的输入(作为char代码)和输出对如下所示: in out 0 0 1 0 2 0 3 0 4 0 5 …

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.