Questions tagged «code-golf»

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

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

29
乘坐Reading,如果您通过Go,则可获得$ 200
垄断委员会 对于此代码高尔夫球挑战,我们将构建棋盘游戏Monopoly。 规则: 不输入任何内容。 输出一个11x11电路板,其中构成该电路板的每个ASCII字符是美国版Monopoly电路板每个空格的第一个字母。 字符必须用空格分隔。 Go 应该从右下角开始。 产生的确切字符串是 F K C I I B A V W M G N P T N C C S P P S V C S P E L S B J C V C O R I B C M G 请注意,从右下到左下的正方形如下: …

23
排队的圆圈,n点
在成对n排列的圆点的每对不同点之间绘制线,产生类似以下结果的结果。最短的代码(以字节为单位)获胜!您的线条不必透明,但是那样看起来更好。输出必须是矢量图形,或者是至少600像素乘600像素的图像(保存到文件或显示在屏幕上)。要完成挑战,您必须至少绘制20张。

30
字符串的分解图
您是否不喜欢将机器或物体分解成最小零件的那些分解图? 让我们来做一个字符串! 挑战 编写一个程序或函数 输入仅包含可打印ASCII字符的字符串; 将字符串分解为非空格等号字符组(字符串的“段”); 以任何方便的格式输出这些组,并在组之间使用一些分隔符。 例如,给定字符串 Ah, abracadabra! 输出将是以下几组: ! , 一种 aa bb C d H rr 输出中的每个组均包含相等的字符,并删除了空格。换行符已用作组之间的分隔符。以下是有关允许格式的更多信息。 规则 该输入应该是一个字符串或字符数组。它仅包含可打印的ASCII字符(包括从空格到波浪号的范围)。如果您的语言不支持,则可以采用代表ASCII码的数字形式的输入。 您可以假定输入至少包含一个非空格字符。 的输出应包括字符(即使输入是由ASCII码装置)。组之间必须有明确的分隔符,与输入中可能出现的任何非空格字符不同。 如果输出是通过函数返回,则它也可以是一个数组或字符串,或一个字符数组的数组,或类似的结构。在这种情况下,结构可提供必要的分隔。 每组字符之间的分隔符是可选的。如果有一个,则应用相同的规则:输入中不能出现非空格字符。此外,它不能与组之间使用的分隔符相同。 除此之外,格式是灵活的。这里有些例子: 组可能是用换行符分隔的字符串,如上所示。 这些组可以用任何非ASCII字符分隔,例如 ¬。上述输入的输出将是字符串: !¬,¬A¬aaaaa¬bb¬c¬d¬h¬rr 这些组可以用n > 1个空格分隔(即使n是可变的),每个组之间的字符也用一个空格分隔: ! , A a a a a a b b c d h r r …
39 code-golf  string 

30
删除字符串
许多语言都有内置的方法来消除重复项,或者“去重复”或“唯一化”列表或字符串。不太常见的任务是“删除”字符串。也就是说,对于每个出现的字符,都会保留前两次出现。 这是一个示例,其中应删除的字符用标记^: aaabcbccdbabdcd ^ ^ ^^^ ^^ aabcbcdd 您的任务是完全实现此操作。 规则 输入是单个(可能为空)字符串。您可以假定它仅包含ASCII范围内的小写字母。 输出应为一个字符串,其中已删除的所有字符至少已在字符串中出现两次(因此,保留了最左边的两个匹配项)。 您可以使用字符列表(或单例字符串)来代替字符串,但是输入和输出之间的格式必须一致。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 每对线都是一个测试用例,输入然后是输出。 xxxxx xx abcabc abcabc abcdabcaba abcdabc abacbadcba abacbdc aaabcbccdbabdcd aabcbcdd 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成排行榜,a)是每种语言的最短解决方案列表,b)则是整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 3 …

29
伪析因
有时在数学问题或谜语中会出现一个相当奇怪的数字。伪因子(N)是数字1到N的最小(即最低)公倍数;换句话说,它是最低的数字,其中包含从1到N的所有数字。 例如pseudofactorial(7)= 3 * 4 * 5 * 7,与7相同!除了2和6已删除,因为它们包含在其他术语中。 编写一个程序来计算pseudofactorial(N),并且一如既往地以最短的代码为准。 这是供您使用的简短列表。可以在OEIS中的A003418下找到更多测试用例。 阶乘: 1个 2 6 24 120 720 5040 伪因子: 1个 2 6 12 60 60 420

30
可除性测试
任务 给定两个严格的正整数n和d作为输入,请确定n是否可被d 整除,即是否存在整数q使得n = qd。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 输出应该是真实值或虚假值;如果n可被d整除,则为真;否则为f。 您的代码只需要处理可以本机表示的整数,只要它适用于所有带符号的8位整数即可。但是,您的算法必须适用于任意大整数。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 n, d output 1, 1 truthy 2, 1 truthy 6, 3 truthy 17, 17 truthy 22, 2 truthy 1, 2 falsy 2, 3 falsy 2, 4 falsy 3, 9 falsy 15, 16 falsy 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language …

15
看天上!这是一个超级骗子阵列!
在Code Review中受到我们竞争对手朋友的这个问题的启发。 定义 甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}是一个超级数组,因为 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}是不是一个超级阵列,因为 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}是一个超级数组,但它也是一个双精度数组,因为 3 > …

21
密钥在哪一行上?
给定以下任何字符(或换行符): `1234567890-=~!@#$%^&*()_+qwertyuiop[]\QWERTYUIOP{}|asdfghjkl;'ASDFGHJKL:"zxcvbnm,./ZXCVBNM<>? 您的程序必须输出它在键盘上的行 由于我的键盘(几乎)没电了,因此您的代码必须尽可能短 您的程序应使用的键盘(用于行查找),应类似于: Row 1:~` !1@2 #3$4 %5^6 &7*8 (9)0 _-+= Row 2: Q W E R T Y U I O P {[ }] |\ Row 3: A S D F G H J K L :; "' ↵ return Row 4: Z X C V B …

24
带点和逗号时间标记的ASCII时钟
介绍 想象一下,字符行实际上是两行。上排小圆点-表示小时(24小时制),而下排逗号-表示分钟。只要有可能,一个字符就可以表示小时,分钟或同时表示两者。 起初,您可能必须将午夜以来的分钟数转换为小时数和分钟数。 结果是以“点格式”显示当前时间的字符串。点数(此处的单引号记为点,将称为so!)是自午夜以来的小时数,而逗号数是分钟数。我将展示一些示例以使其清楚。 (备注)hh:mm- result (仅营业时间)05:00- ''''' (仅分钟)00:08- ,,,,,,,, (小时<分钟)03:07- ;;;,,,, (小时>分钟)08:02- ;;'''''' (小时=分钟)07:07- ;;;;;;; (一天的开始)00:00- (空结果) 请注意,“两个”字符最多可使用23次-对于23:xx,其中xx为23或更大。 符号 如果必须用您的语言对字符进行转义(请参阅规则5),则可以将其更改为替代方法之一。如果上述替代方法还不够,则可以使用其他符号-但要使其合理。我只是不想逃避成为一个障碍。 ;(分号) -标记两个小时和分钟(ALT: :) '(撇号) -标记为小时(ALT: '``°) ,(逗号) -标记为分钟(ALT: .) 附加规则 字节数最少的代码胜出! 您必须尽可能使用两个符号。对于02:04的结果不能为'',,,,,也不能为;',,,。必须是;;,, 输入-可以是脚本/应用参数,用户输入(如readline)或代码 3.1中的变量。如果使用内部代码变量,则其长度必须尽可能长。这是1439(23:59),所以它看起来像t=1439 由“两个”字符表示的公共部分(12:05中的12,03:10中的3)必须放在字符串的开头 仅当必须在代码中将符号转义时,才能将符号替换为替代符号。 在00:00之后的分钟内输入。您可以假定这是一个非负整数。 测试用例 Input: 300 Output: ''''' Input: 8 Output: ,,,,,,,, Input: 187 Output: …
39 code-golf  string  clock  time 

14
生成圣殿天际线序列
请考虑以下过程: 取一些非负整数N。 例如N = 571 以二进制形式表示,没有前导零。(零本身是唯一的例外,成为0。) 例如571= 1000111011二进制 在此二进制表示中,将连续的1和0分开。 例如1000111011→ 1,000,111,0,11 从最长到最短对运行进行排序。 例如1,000,111,0,11→ 000,111,11,1,0 用交替1的和替换每次运行中的所有数字0,始终以开头1。 例如000,111,11,1,0→ 111,000,11,0,1 连接结果以获得新的二进制数。 例如111,000,11,0,1→ 1110001101= 909十进制 当您绘制由此过程产生的值时,会得到一个漂亮的图形: 希望我将为什么将所得序列称为Temple Skyline序列是显而易见的: 挑战 编写一个使用非负整数N并打印或返回相应的Temple Skyline序列号的程序或函数。您的输入和输出都应为十进制。 例如,如果输入为571输出,则应为909。 以字节为单位的最短代码获胜。 作为参考,以下是从N = 0到20的顺序中的术语: 0 1 1 1 2 2 3 3 4 6 5 5 6 6 7 7 8 14 …

22
三角剖分文字
编写一个程序或函数,该程序或函数的字符串必须保证只能包含可打印的ASCII字符(空格除外),并且长度必须是正三角形(1、3、6、10、15,...)。 打印或返回相同的字符串,但使用空格将其成形为三角形。一些例子将最好地说明我的意思: 如果输入为,R则输出为 R 如果输入为,cat则输出为 c a t 如果输入为,monk3y则输出为 m o n k 3 y 如果输入为,meanIngfu1则输出为 m e a n I n g f u 1 如果输入为,^/\/|\/[]\则输出为 ^ / \ / | \ / [ ] \ 如果输入是 Thisrunofcharactersismeanttohavealengththatcanbeexpressedasatriangularnumber.Diditwork?Youtellme,Ican'tcountverywell,ok? 那么输出将是 T h i s r u n o f c …

13
我想要蜂窝
编写最短的程序来打印此六角形平铺或蜂窝状的 ASCII艺术部分: __ __/ \__ __/ \__/ \__ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ \__/ \__/ \__/ 请勿输入任何内容。 输出到标准输出或您的语言最接近的替代产品。 您可以编写一个不带任何参数的命名函数,而不是程序,而可以正常打印结果或将其返回为字符串。 输出可以具有任意数量的前导和/或尾随换行符,并且输出中的每一行可以具有任意数量的前导和/或尾随空格(只要模式正确对齐即可)。 以字节为单位的最短代码获胜。

24
计算数字的数字差总和
考虑采用一些非负整数(例如8675309)并计算所有相邻数字对之间的差的绝对值。 对于8675309我们得到|8-6| = 2,|6-7| = 1,|7-5| = 2,|5-3| = 2,|3-0| = 3,|0-9| = 9。将这些结果串在一起会产生另一个较小的非负整数:212239。重复该过程,得到11016,然后0115,按照惯例,未写入前导零简化为115,变为04或4,不能再进一步减少。总结所有这些价值,我们得到8675309 + 212239 + 11016 + 115 + 4 = 8898683。 让我们将数字差总和(或DDS)定义为以下操作:重复获取数字的数字差以形成新数字,然后将所有结果数字加到原始数字上。 以下是相应DDS序列中的前20个值: N DDS(N) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 …

8
建造稳定的砖墙
砖墙是由水平的1乘n的砖砌成几排而成的矩形。这是一堵高4宽8的墙,右侧显示了砖块大小。 [______][______] 4 4 [__][____][__][] 2 3 2 1 [][______][____] 1 4 3 [____][______][] 3 4 1 这堵墙是不稳定的,因为它有断层,即砖之间的两个垂直裂缝排列的位置,如下图所示,周围的砖中有孔。 [______][______] [__][____)(__][] [][______)(____] [____][______][] 但是,与右边的1号砖块相邻的裂缝并不构成断层,因为它们被一行隔开。 编写代码,查找并显示由指定大小的砖块构成的稳定墙。最少的字节数获胜。 输入值 砖块大小(正数)和高度至少为2的非空列表。可以根据需要对该列表进行排序。您也可以选择各种大小的砖块。 输出量 使用所有给定砖块的所需高度的稳定矩形墙的图片。打印它或将其作为带换行符的字符串返回。 绘制大小为n的2n个字符的砖,下划线用方括号括起来。 1: [] 2: [__] 3: [____] 4: [______] ... 保证输入至少有一个解决方案。如果有多个,您仍然应该只画一堵墙。 没有时间限制;使用尽可能多的蛮力。理论上,您的算法应适用于任何大小的输入。 测试用例: 有多种解决方案,因此您的输出可能会有所不同。 >> [1, 1, 2, 2], 2 [][__] [__][] …

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.