Questions tagged «code-golf»

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

21
互换指数和价值
任务 编写一个程序或函数,其输入是整数的列表/数组X,输出是整数Y的列表,这样对于每个集合Y中的每个元素e [ i ],X [ e ] = i和这样,Y中集合中元素的总数等于X中元素的数目。 (除了应用于数组之外,这基本上与反转哈希表/字典相同。) 例子 这些示例假定基于1的索引,但是如果愿意,可以改用基于0的索引。 X Y [4] [{},{},{},{1}] [1,2,3] [{1},{2},{3}] [2,2,2] [{},{1,2,3}] [5,5,6,6] [{},{},{},{},{1,2},{3,4}] [6,6,5,5] [{},{},{},{},{3,4},{1,2}] 澄清说明 如果愿意,可以将一个集合表示为一个列表。如果这样做,其元素的顺序无关紧要,但是您可能不会重复元素。 您可以使用任何合理的明确I / O格式;例如,您可以用空格分隔集合的元素,并用换行符分隔集合本身。 Y应该是有限长的,并且至少要长到足以将X的所有元素都作为数组索引。但是,它可能比X的最大元素长(多余的元素将是空集)。 X的元素都将是有效的数组索引,即,如果使用基于0的索引,则为非负整数;如果使用基于1的索引,则为正整数。 胜利条件 作为代码高尔夫球挑战,越短越好。

13
帕斯卡的列总和
这里的大多数人都熟悉Pascal的Triangle。它由连续的行组成,其中每个元素是其两个左上和右上邻居的总和。这是第一5行(从Generate Pascal的三角形借用): 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 我们将采用Pascal的Triangle并对其进行一些求和(哈哈)。对于给定的输入n,输出nPascal三角形的第一行的列和。例如,对于input 5,输出将由 1 1 1 1 2 1 1 3 3 1 [+] 1 4 6 4 1 ---------------------- 1 1 5 4 9 4 5 1 1 因此输出将是[1, 1, 5, 4, 9, …

30
给我个复活节彩蛋!
不,不是^^vv<><>BA那种复活节彩蛋,我们画的是真正的复活节彩蛋。 这是一个(鸡蛋)。 __ / \ / \ | | \____/ 在复活节,我们用图案画它们。像这些: __ /--\ /----\ |----| \____/ __ /%%\ /%%%%\ |%%%%| \____/ __ /~~\ /~~~~\ |~~~~| \____/ 挑战 给定一个字符(可打印的ascii)来画鸡蛋,请打印画的鸡蛋。 例子: &: __ /&&\ /&&&&\ |&&&&| \____/ #: __ /##\ /####\ |####| \____/ 眼镜 尾随换行符/空格是允许的。

8
播放一些Pachelbel的佳能
将以下Pachelbel佳能的摘录输出为D音频: 规则 可以使用任何格式/编码,只要在创建此挑战之前已存在编解码器 可以使用任何乐器(真实乐器,MIDI合成等) 速度必须为65 BPM(如活页乐谱中所述)-如果您无法获得准确的65 BPM,则可以使用64.75-65.25(含)范围内的任何速度 乐谱在音乐会上 必须使用相等的气质调整(特别是12-ET,A4 = 440 Hz) 作为参考,下面是一个摘录的堆栈片段: 显示代码段 <audio controls><source src="https://a.clyp.it/h3y3isar.mp3"></audio> 运行代码段隐藏结果展开摘要

16
尽可能多地填写递增顺序
数字列表被称为单调递增(或不递减),因为每个元素都大于或等于它之前的元素。 例如, 1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14单调增加。 给定正整数的单调递增列表,该整数具有任意数量的空白点,表示为 ?,用正整数填充空点,以使列表中存在尽可能多的唯一整数,但它保持单调递增。 可能有多种方法可以实现此目的。任何有效。 输出结果列表。 例如,如果输入是 ?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ? 确保没有空白点的列表将单调增加 1, 1, 2, 4, 5, 5, 5, 8, …

6
我可以扫雷吗?
扫雷(Minesweeper)是一种流行的益智游戏,您必须在不单击这些图块的情况下发现哪些图块是“地雷”。而是单击附近的图块以显示相邻地雷的数量。该游戏的一个缺点是,有可能最终导致存在多个有效答案而您只能猜测的情况。例如,使用以下面板: 1110 2*31 3*?? 2*4? 112? 在此格式中,数字代表相邻地雷的数量,an *代表已知地雷,“?” 代表潜在的地雷。关于这个特殊难题的不幸之处在于,存在四个不同且有效的潜在解决方案: 1110 1110 1110 1110 2*31 2*31 2*31 2*31 3*4* 3*5* 3**2 3**1 2*42 2*4* 2*4* 2*42 112* 1121 1121 112* 这意味着董事会是无法解决的。这是可解决的板的示例: 1121 1??* 12?* 0122 该板是可解决的,因为只有一种可能的有效解决方案: 1121 1*4* 12** 0122 您的任务是编写一个程序或函数,该程序或函数需要一个有效的扫雷器板并确定其是否可解决。“有效扫雷板”是指输入将始终为矩形,具有至少一种解决方案,并且不包含任何无效字符。 您的输入可能是字符数组,字符串数组,包含换行符的字符串等。如果输出可解决,则输出必须为真实值,否则为错误值。我并不十分担心性能,但是理论上您的解决方案必须适用于任何大小的输入。 像往常一样,存在标准漏洞,而最短的解决方案以字节为单位! 例子: 以下示例都是可解决的: 1121 1??* 12?* 0122 1110 1??? …

25
排序字符串
如果对字符串进行排序,通常会得到类似以下内容的信息: ':Iaaceeefggghiiiiklllllmnnooooprrssstttttuuyyyy 是的,那是第一句话。 正如你所看到的,有很多重复的字符,aa,eee,ttttt,9位等。 如果我们将128第一个重复项的ASCII值相加,256将第二个重复项的ASCII值相加384,依此类推,依此类推,再次对其进行排序并输出新的字符串(取模128以返回相同的字符),我们将得到以下字符串: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt (请注意单个前导空格和四个尾随空格)。 该字符串“依次排序” <space>':I....uy,<space>aeg....uy,<space>egi....ty,<space>iloty,<space>lt,<space>,<space>,<space>,<space>。 如果我们使用带数字的字符串,可能会更容易形象化。该字符串111222334在“排序”后将为:123412312。 挑战: 毫不奇怪,挑战在于编写根据以上描述对字符串进行排序的代码。 您可以假定输入字符串将仅包含32-126(空格到波浪号)范围内的可打印ASCII字符。 测试用例: **Test cases:** *:Tacest*es*s* If you sort a string you'll typically get something like: ':Iacefghiklmnoprstuy aegilnorstuy egilosty iloty lt Hello, World! !,HWdelorlol #MATLAB, 114 bytes #,14ABLMTbesty 1A f=@(s)[mod(sort(cell2mat(cellfun(@(c)c+128*(0:nnz(c)-1),mat2cell(sort(s),1,histc(s,unique(s))),'un',0))),128),'']; '()*+,-0128:;=@[]acdefhilmnoqrstuz'(),0128@acefilmnorstu'(),12celmnostu'(),12celnstu(),clnst(),cls(),cs(),()()()() 这是代码高尔夫球,因此每种语言中以字节数计的最短代码将赢得ref。

10
雪人保龄球
(相关/灵感来自:绘制保龄球) 在冬季,这里的一个有趣消遣是使用一个大球(例如篮球)和微小的雪人人物来打雪人保龄球。让我们用ASCII重新创建它。 每个雪人包括以下内容: (.,.) ( : ) 这是十个雪人“别针”的对齐方式 (.,.) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) ( : ) (.,.) (.,.) (.,.) ( : ) ( : ) ( : ) (.,.) (.,.) ( : ) ( : ) (.,.) ( : ) 这些“销”被从标记1到10作为 7 …

11
解决Befinge的暂停问题
让我们定义一种简单的2D语言,我们将使用难以置信的原始名称befinge。Befinge有5条指令: <>^v与大多数2D esolang中一样,将指令指针重定向到各自的方向。 . 是无人操作。 指令指针从右上角的左上角开始。如果指令指针到达边缘,程序将暂停。每个Befinge程序显然都将停止或进入无能为力的无限循环。这是两个示例: 停止: >.v ..< 非停止: >....v ..v..< ..>v.. ^..<.. 对于图灵完备的语言来说,停止问题无法解决,但对于这种语言来说,却是可以解决的。您的任务是编写一个程序(或函数),该程序将代表befinge程序的字符串作为输入,并根据是否停止而返回true或false值。 您可以假设输入将仅包含这些字符,并用空格填充以形成一个矩形。 您可以使用任意五个字符的集合作为说明(例如adws )。 测试用例 停止: . v> >^ ....v.... ....>...v .^..<.... .......v< .......v. ....^..<. v<>v>v^ >v^>^>v <>>^v<v v^<>v^< 非停止: >..v ^..< >v< v<. >v. v<. >.^ >.>.>.v .><.<.< 这是代码高尔夫球,因此最短的程序(以字节为单位)获胜。

25
嘶嘶声到文本
介绍 我不特别知道嘶嘶声的趋势来自何处。它可能只是一个模因之类的东西,但是却颇受欢迎。 挑战 今天的工作是将Fizz Buzz分别转换为二进制(0、1),然后将该二进制转换为文本。很标准的东西。 这是如何运作的? FizzBu​​zzBuzzFizzBu​​zzFizzFizzFizz FizzBu​​zzBuzzFizzBu​​zzFizzFizzBu​​zz将转换为01101000 01101001,然后将其转换为“ hi” 约束条件 输入是从二进制角度看的Fizz Buzz(请参见下面的示例。) 输出必须是文本。 您可以假设FizzBu​​zz输入正确。 这是代码高尔夫球,最短字节获胜。 输入值 FizzBu​​zzBuzzFizzBu​​zzFizzFizzFizz FizzBu​​zzBuzzFizzBu​​zzFizzFizzBu​​zz FizzFizzBu​​zzFizzFizzFizzFizzBu​​zzBuzz 输出量 “嗨!”
29 code-golf  binary 

30
平方序列
平方序列x n中的每一项都是通过取x n-1,将其平方,然后除去除前四位以外的所有数字而创建的。 该序列始终以x 1 = 1111开头。平方得到1234321,所以x 2 = 1234 前几个术语是: 1111 1234 1522 2316 5363 ... 挑战 您的任务是给定非负整数n,计算x n。您可以提交执行I / O的完整程序,或提交以n作为参数的函数。 只要指定哪个解决方案,索引就可以为零或一。 由于此序列中的所有术语都少于5位数字,因此您的代码也应尽可能短。适用标准代码高尔夫球漏洞。 愿最好的高尔夫球手获胜! 测试用例 注意:这些是1索引的。 1 -> 1111 8 -> 6840 15 -> 7584 20 -> 1425 80 -> 4717

24
荷兰Burgerservicenummer(BSN)十一测试
介绍: 符合以下规则的荷兰BSN(BurgerServiceNummer)有效: 它仅包含数字。 长度应为8或9。 当A通过索引数字时I,以下总和的结果:(请9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI注意-1而不是1!)应该被11整除,并且不应该为0。 挑战: 输入:代表BSN的字符串或字符数组。 输出:甲truthy或falsey结果输入是否是有效的BSN。 挑战规则: 输入格式应为字符串或字符数组。不允许使用数字的整数数组或(可能是八进制)数字。(不过,您可以自己将其转换为数字的整数数组,但不能直接将其作为参数。) 尽管上面的输入有限制,但您可以假定所有测试用例都将包含一个或多个数字([0-9]+) 关于长度为8而不是9的BSN,荷兰维基百科指出:“ 对于11次测试和其他实际用途,添加前导零以使长度为9。 ”(来源) 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。你的来电。 默认漏洞是禁止的。 如果可能,请为您的代码添加一个带有测试的链接。 另外,如有必要,请添加说明。 测试用例: // Truthy test cases: 111222333 123456782 232262536 010464554 10464554 44016773 …

13
评估三元运算符的表达式
考虑过字母表语法{ 0, 1, ?, :}由定义的产生式规则 小号→交通0┃ 1┃ 0 ?小号:小号┃ 1 ?小号:小号 给定从s生成的字符串,将其解析?:为右关联的表达式(例如,a?B?X:Y:c?d:e?f:gmeans a?(B?X:Y):(c?d:(e?f:g))),并使用以下语义对其进行求值: eval(0) = 0 eval(1) = 1 eval(0?a:b) = eval(b) eval(1?a:b) = eval(a) 如果结果为0,则输出一些固定值;如果输出为1,则输出不同的固定值。在答案中指定您选择的输出值(例如0/ 1或False/ True)。 测试用例 0 -> 0 1 -> 1 0?0:1 -> 1 0?1:0 -> 0 1?0:1 -> 0 1?1:0 -> 1 0?1?0:1:1 -> 1 …
29 code-golf  syntax 

1
编写一个非终止独立于Peano算术的程序
挑战 编写一个不带输入的程序P,使命题“ P的执行最终终止” 与Peano算术无关。 正式规则 (如果您是一位数学逻辑学家,但认为以上描述过于非正式。) 原则上,可以将某些通用图灵机 U(例如,您喜欢的编程语言)转换为Peano算术公式HALT到变量p上,其中HALT(p)编码命题“ U终止于程序(由Gödel编码)p ”。面临的挑战是找到p,以便无法在Peano算术中证明HALT(p)和¬HALT(p)。 您可能会假设您的程序运行在理想的计算机上,该计算机具有无限的内存和足够大的整数/指针来访问它。 例 为了查看此类程序的存在,一个示例是穷举搜索0 = 1的Peano算术证明的程序。Peano算术证明仅当Peano算术不一致时,该程序才会暂停。由于Peano算法是一致的,但无法证明其自身的一致性,因此无法确定该程序是否暂停。 但是,还有许多独立于Peano算术的命题,您可以在这些命题上建立程序。 动机 这项挑战的灵感来自Yedidia和Aaronson(2016)的一篇新论文,该论文展示了具有7918个状态的图灵机,其不端接独立于ZFC,而ZFC比Peano算术更强大。您可能对其引文感兴趣[22]。当然,面对这一挑战,您可以使用自己选择的编程语言代替实际的图灵机。
29 code-golf 

23
找出距离n最多的n个位置
这个问题的后遗症。 任务 给定正整数数组,找到最大元素k: 存在一些正整数距离n,因此位于n中的数组中的元素位于距k 左或右等于n的位置。 确保该数组包含至少一个满足此条件的元素。 最短的代码(以字节为单位)获胜。您可以选择所需的任何I / O格式。 例 给定输入 [4, 6, 7, 9, 3, 6, 5, 7, 2] 合格值为: 的4,因为有一个7位于7个位置的右 第一个6,因为3它的右边有3个位置 的3,因为有一个4位于4个位置到其左 的5,因为有一个2位于2位在它的右边 第二个7,因为它3位于左侧3个位置。 在这些值中,最大的是7。 测试用例 [1, 13] → 13 [2, 9, 8, 3, 72, 2] → 8 [5, 28, 14, 5, 6, 3, 4, 7] → 14 …

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.