Questions tagged «code-golf»

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

7
给我编织一个ASCII袜子
介绍 长话短说:几天前,我不小心开始编织袜子,平针的漂亮逻辑结构使我想到:我们为什么不只用ASCII编织袜子? 输入值 输入在该范围内整数N,偶数[2,30]。 输出量 显然,输出是袜子。 结构体 由于我们将仅使用平针,因此仅v用于向下针和>向右针。让我用以下示例说明完整结构N=8: vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvv>>> vvvvvv>>>>>> vvvvv>>>>>>>>> vvvv>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> 第一块是上部。它具有宽度N和高度N*1.5 之后,脚跟开始。您v从右侧每行减去一个,直到N/2宽度等于。然后添加下面N/2宽度的行N/2以完成向下编织。请注意,它给出的N/2 + 1行的总宽度为N/2 第一部分: vvvvvvvv //begin with width N vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv // …

5
播放Pi的声音
是的,您没看错标题。播放pi的声音。 更具体地说,对于前1000个pi中的每个数字,将其映射到音符,然后将产生的旋律输出到文件中。 基本上,每个数字都变成C大调音阶(基本上是正常音阶)上的音符。所以1圈到中间C,2圈到D4,3圈到E4,9圈到D5,依此类推。 规则 每个音符的长度应恰好为0.5秒。 旋律应包含pi的前1000位,包括开头的3。 1到7代表中间C到B4,8是C5,9是D5,0是E5 允许所有受良好支持的文件格式,只要它们是在此挑战之前创建的即可。 文件中的任何位置(包括开始和结束)都可能没有暂停。 乐器演奏没关系。只要可以轻易听到正确的声音,它就可以是钢琴,正弦波,或者其他任何东西。 除文件外,它不接受任何输入,不产生任何输出。禁止从其他文件读取。 禁止出现标准漏洞。 示例数学代码: (*please forgive me for this horrible, horrible mess of code*) digits = RealDigits[Pi, 10, 1000][[1]] /. {0 -> 10}; weights = {0, 2, 4, 5, 7, 9, 11, 12, 14, 16}; melody = {}; For[i = 1, …

5
十六进制转储您的源代码
在进行代码搜寻时,有时需要使用十六进制转储代码,通常是因为您使用了无法打印的字符。那么,为什么不编写一个十六进制转储本身的程序呢? 挑战 面临的挑战是,在没有任何输入的情况下,以以下格式输出源代码的十六进制转储: 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0020: 00 00 00 00 00 00 00 00 00 00 …
15 code-golf  quine 

5
卷尺字符串
动机:有时您需要知道字符串中的位置。您希望能够查看字符串的任何部分,并尽可能准确地知道您的位置。 挑战:编写程序以输出给定长度的卷尺字符串。一个卷尺字符串自我介绍它的长度那么远尽可能多地沿着它自己的长度。 规则: 您的程序必须使用一个正整数参数,表示卷尺字符串的总长度 对于输出的数字每个连续的字符串,这些数字必须如实申报输出的长度为止- 包容! 长度从字符串的开头到每个数字的结尾进行测量 字符串中应包含尽可能多的长度数字 避免歧义。分隔符/分隔符可用于避免数字并置,即12说十二个不是一,二。 字符串必须始终准确地报告其末尾的总长度,且没有结尾的分隔符 您可能需要多个分隔符以保持长度准确,例如,这是一个长度为4的卷尺示例: 1--4 非说明性/详尽的示例: 卷尺长度为1的卷尺 1 长度为2的卷尺字符串: -2 卷尺长度为3的卷尺 1-3 卷尺长度为4的卷尺:1--4或-2-4(两个报告长度都应尽可能长,即两次,并以正确的总长度结尾) 卷尺长度为10的卷尺: 1-3-5-7-10 卷尺长度为11的卷尺:1-3-5-7--11或1-3-5--8-11或1-3--6-8-11或1--4-6-8-11或-2-4-6-8-11(所有长度都尽可能长,并以总字符串长度结尾)
15 code-golf  string 

25
该程序将找到下一个素数
介绍: 您不小心用了一个有趣的设备破坏了时间流,该设备原来是一台时间机器。结果,您被推到了遥远的未来。您意识到计算,处理能力和计算机总体上已经发生了巨大的发展,确切地说,它是无限的。因此,您可以抢购一台具有无限内存和处理能力的计算机。您不知道它如何具有无限的内存和无限的处理能力,但是您只接受它并回到现在。 挑战: 您听说发现当前最大黄金的人2^74,207,281 − 1获得了$ 100.000的报酬。您决定制作一个程序来查找下一个素数,因为您想取回在计算机上花费的钱。您可以制作一个通过输入数字并通过暴力破解或任何其他方法找到下一个质数的数字。 说明: 您有一台假设的机器,具有无限的存储和处理能力。您的程序一定不能受到限制(例如:C#的int可以存储从-2,147,483,648到2,147,483,647),那么您的程序必须能够存储并且可以使用任意数量的任何大小的文件。您拥有无限的资源,因此如果允许,则不必担心是否会耗尽内存。 I / O示例: 输入:当前发现的最大质数,具有22,338,618位数字。 输出:正好是下一个素数 显然,您不必证明它可以工作,因为在物理机上进行计算将花费大量时间。但是,如果将程序转移到具有无限处理能力/内存的虚拟机上,它应该立即进行计算。 找到下一个质数并检查数字是否为质数是两件完全不同的事情
15 code-golf  math  primes 

9
琐碎的序列的扭曲
介绍 考虑定义如下的整数f的序列: f(2)= 2 如果n是奇数素数,则f(n)=(f(n-1)+ f(n + 1))/ 2 如果n = p·q是合成的,则f(n)= f(p)·f(q) 不难发现每n≥2 f(n)= n,因此计算f并不是一个非常有趣的挑战。让我们改变一下定义:将第一种情况减半,第二种情况加倍。我们得到一个新的序列g,定义如下: g(2)= 1 如果n是奇质数,则g(n)= g(n-1)+ g(n + 1) 如果n = p·q是合成的,则g(n)= g(p)·g(q) 任务 您的任务是将整数n≥2作为输入,并产生g(n)作为输出。您不必担心整数溢出,但是您应该能够正确计算g(1025)= 81,并且您的算法在理论上应该适用于任意大的输入。 您可以编写完整的程序或函数。最低字节数获胜。 例 我声称g(1025)= 81以上,因此我们手动进行计算。1025的素数分解给出 1025 = 5*5*41 => g(1025) = g(5)*g(5)*g(41) 由于41是素数,我们得到 g(41) = g(40) + g(42) 接下来,我们计算40和42的素因式分解: 40 = …

9
倾斜的二进制数
给定一个整数n,输出n索引为0或1 的第一个倾斜的二进制数。它们之所以被称为是因为它们是如何生成的: 将数字以二进制形式彼此下写(右对齐): ........0 ........1 .......10 .......11 ......100 ......101 ......110 ......111 .....1000 ......... 然后,您需要从左下角到右上角取每个对角线,以使每个最后一位是对角线的最后一位。这是标记为的第四个对角线(零索引)x,它是100: ........0 ........1 .......10 .......11 ......10x ......1x1 ......x10 ......111 .....1000 ......... 向上倾斜的对角线顺序为: 0 11 110 101 100 1111 1010 ....... 然后,转换为十进制 0, 3, 6, 5, 4, 15, 10, ... OEIS A102370 这是code-golf,因此以字节为单位的最短代码获胜。

2
解决堆栈状态图
堆栈状态图显示了如何将一个堆栈上的值更改为另一个堆栈上的值。例如,这是一个堆栈状态图: 3 0 2 1 0 这意味着有一个堆栈最初包含3个值(3部分)。这些值的索引范围是0到2,顶部是0 2 1 0。下一部分0 2 1 0描述了堆栈的最终状态:最初位于堆栈顶部的值也已复制到背面。 这些转换发生在支持多种数据类型的堆栈上: “值”类型,最初是堆栈上的值。它可以是字符串,整数等,但是不需要知道其值。 “列表”类型,它是包含任何数据类型的值的列表。 为了对此转换建模,允许执行以下操作: S:交换堆栈顶部的两个值:2 1 0→2 0 1 D:将值复制到堆栈顶部:1 0→1 0 0 R:删除堆栈上的最高值。 2 1 0→2 1 L:将最高值变成包含该值的一元列表:2 1 0→2 1 (0) C:串联堆栈中的前两个列表:2 (1) (0)→2 (1 0) U:将列表中的所有值放入堆栈:2 (1 0)→2 1 0 这些等效于欠载命令~ : ! a …

11
对齐文本网格的对角线
给定一个矩形的文本网格,将从左上角到右下角的对角线排列成列,以使所有对角线的最右下角的字符都在一个水平上。使用空格进行缩进。 例如,如果输入的文本网格为 abcd 1234 WXYZ 然后你会排队对角线W,1X,a2Y,b3z,c4,和d在给这个输出列: ab 123c WXYZ4d 请注意,所有对角线的最右下角的字符WXYZ4d处于同一级别。 细节 文本的输入网格的大小至少为1×1,并且所有行的长度都相同。 您可以将输入网格作为多行字符串或作为单行字符串的列表。 输入网格将仅包含可打印的ASCII字符(包括空格)。 输出可能有一个尾随换行符,但不应有其他空行。 输出的行可以选择有尾随空格,但不应有不必要的前导空格。 其他例子 空行分隔示例。每个输入后紧跟其输出。 123 456 789 1 452 78963 123.?! 456??! 789!!! 123. 456??? 789!!!!! **@ @ ** @ @ /\/\ \/ / / /\ \/\/ / \/\ / / / \/\/\/\ 12 34 56 …
15 code-golf  string  grid 

16
计算威尔逊得分间隔
的威尔逊得分间隔是成功的概率的置信区间的基础上,成功的在一组伯努利试验的比例(一个伯努利试验是其中恰好两个结果是可能的试验:成功或失败)。该间隔由以下公式给出: 公式给出的两个值是间隔的上限和下限。n S和n F分别是成功和失败的次数,n是试验的总数(相当于n S + n F)。z是取决于所需置信度的参数。出于此挑战的目的,将使用z = 1.96(对应于95%的置信区间)1。 给定非负整数n S和n F,输出威尔逊得分区间的边界。 规则 在您的语言的浮点实现限制内,输出必须尽可能精确到真实值,而忽略由于浮点算术错误而引起的任何潜在问题。如果您的语言能够执行任意精度算术,则它必须至少与IEEE 754双精度算术一样精确。 输入将在您的语言的本机整数类型的可表示范围内,而输出将在您的语言的本机浮点类型的可表示范围内。 n将始终为正。 输出的顺序无关紧要。 测试用例 格式: n_s, n_f => lower, upper 0, 1 => 0.0, 0.7934567085261071 1, 0 => 0.20654329147389294, 1.0 1, 1 => 0.09452865480086611, 0.905471345199134 1, 10 => 0.016231752262825982, 0.3773646254862038 10, 1 => 0.6226353745137962, …

15
找到五个朋友和保罗一起吃鸡肉
Paul是您的比利时熟人之一,他希望您创建一个程序,该程序至少输出以下五个字符串之一: 12496=>14288=>15472=>14536=>14264 14264=>12496=>14288=>15472=>14536 14536=>14264=>12496=>14288=>15472 15472=>14536=>14264=>12496=>14288 14288=>15472=>14536=>14264=>12496 它代表了他最骄傲的朋友,并且他想和他们一起吃饭。保罗还认为数字6是完美的,这是唯一值得使用的数字。因此,您不能在代码中使用“ 6”以外的任何其他数字(禁止使用0到5和7到9)。您的程序不能接受任何输入。输出可以在字符串之前和/或之后包含垃圾,但应至少包含上述字符串之一。 例如,这是一个有效的输出: 220frefze f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe fzehth 我“虔诚”地在问题中暗示了我希望如何解决该问题,但又怎么知道呢?也许有更好的方法...希望您玩得开心。 这是代码高尔夫球:最低得分(以字节为单位)获胜。

4
戴上帽子的猫
受到即将到来的冬季狂欢活动的启发 客体 添加一顶帽子 ^,´或`在输入的每一个字单韵母。 规则 在hat和vowel必须随意选择。每个帽子必须以相同的概率(33%)出现,并且在单词中的有效元音内,元音必须具有相同的概率(如果单词具有2个有效元音,则每个可能性必须为50%)-或最接近您的语言所拥有的 仅AEIOUaeiou视为元音(对不起y) 输入中带有帽子的元音请勿干扰规则(您可以将其视为辅音) 如果输入没有元音,则不会被修改 必须保留大写。 例子 winter> wintér bash> bâsh rhythm> rhythm rng ftw> rng ftw cat in the hat> cât ìn thê hát dès> dès tschüss> tschüss principî> prìncipî PROGRAMMING PUZZLES & code golf>PROGRÂMMING PÚZZLES & codé gòlf 获奖 这是代码高尔夫球,所以最短的代码胜出
15 code-golf 

4
帮助PPCG克劳斯送礼物!
帮助PPCG克劳斯送礼物 总览 PPCG克劳斯迟迟没有送出礼物,因为如今我们有那么多奇怪的小孩。这使PPCG Claus很难将所有礼物送到正确的地方。您面临的挑战是帮助他正确地处理礼物。 复杂性 给定一个表示要送达的孩子的大写名字列表和一个用数字表示的礼物列表,您必须弄清楚如何在这些孩子之间分配礼物。当然有一个陷阱... 如今,孩子们变得挑剔,如果孩子是个奇怪的家伙(第一个名字的首字母是ASCII码是奇数),他就想要一个奇怪的礼物!如果他是个偶人(第一个名字的首字母是ASCII码),那么显然他必须被赋予偶数!但是,任何可被3整除的孩子都是顽皮的,顽皮的小伙子,因此PPCG克劳斯必须完全无视他们,才能在明年表现出来。为了使他的路线成功,他必须将所有礼物送给所有应得的孩子,并且不能给任何一个孩子太多礼物。如果有任何一个孩子比同龄人获得的礼物多3倍以上,他明年就有成为顽皮孩子的风险,那是不对的!此外,如果有好的孩子都收到礼物时,另一个很好的孩子没有,这也将反过来说孩子的罪恶。 例 孩子们如下: Kids = ["Amy", "Betty", "Clyde", "Dave", "Francine"] = [A,B,C,D,F] = [65,66,67,68,70] 贝蒂(Betty)是人类的祸根,显然是数字3。 艾米(Amy)和克莱德(Clyde)自出生以来就是怪胎,甚至不愿收到礼物。 即使是孩子,戴夫(Dave)和弗朗辛(Francine)都很正常。他们应该只收到礼物! 礼物如下: Presents = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] 一种可能的输出是: [ ['Amy',[1,3,5]], ['Betty',[]], ['Clyde',[7,9,11,13]], ['Dave',[2,4,6,8]], ['Francine',[10,12,14]] ] 例外情况 但是,仅仅因为PPCG克劳斯已经准备好并且愿意,并不意味着PPCG克劳斯可以。以下是一些例外情况的列表,在这些情况下,您必须使用以下消息将坏消息告知PPCG Claus: PPCGmas is cancelled! 以下情况将导致圣诞节被取消: 没有孩子。 [],[1,2,3] -威尔普,他们死了。 没有好孩子。 ["Betty"],[1,2,3] -认真地,拧贝蒂。 没有礼物,或者礼物少于好孩子。 ["Amy","Charles"],[] …

3
高尔夫小数
您的目标是编写一些代码,该代码将为输入分数输出最短的唯一十进制序列。分母相同的两个分数都不能具有相同的输出,尽管分母不同的分数可能具有相同的表示。 以2个整数作为输入,第一个是分子,第二个是分母。 例如: n d output ----- ------ 0 13: 0.00 1 13: 0.07 2 13: 0.1 3 13: 0.2 4 13: 0.30 5 13: 0.38 等等 3/13是唯一以13开头的分母为13的分数0.2,因此不需要其他数字。4/13和5/13两个下手0.3,所以需要另一个数字来区分它们。 您可以输出大于-1且小于1的数字,小数点前有零或无零,只要输出是一致的,即0.5和.5是相同的数字并且都有效。不允许其他前导零。如果必须使用尾随零来将输出与另一个值区分开,则必须显示尾随零。 您不得将任何数字都舍入为零。他们必须被截断。不得有前导或尾随空格。可能有一个结尾的换行符。 更多测试值: n d output ---------- ------ 0 1: 0 (this 0 may not be removed because there's no decimal point) …

2
验证我的千层面
情境 我经常煮烤宽面条,但我也有一些错误。由于我经常重复这些错误,所以我认为我可以做一个检查我是否做对的程序。 有效千层面 有效的千层面是 至少5列宽 至少4层高 不包括多余的奶酪 顶层是奶酪(以表示,) 第二层是酱料(用@或表示#) 之后,各层交替显示(1层酱汁,1层面条(由~或表示-)) 每列可以有一层或两层奶酪 该程序 应该 以烤宽面条串作为输入 多行字符串 字符串数组 字符串仅包含字符 ,@#~- 长方形 必要时用空格填充 输出是否是有效的千层面 任何有效的语言 没什么用你的语言造假 要么 完整程序 一个功能 仅使用2016年12月14日之前实现的功能 测试用例 ,, , ,,,,,, @@@### ~~~~~- @##@@# --> truthy @@@# ---- @@## ---- @### --> falsy (cause of cheese and width (You don't …

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.