Questions tagged «code-golf»

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

10
分解为素数
给定一个整数n,返回可以将n写入质数列表的方式数。例如,2323可以书面(2,3,23),(23,23)或(2,3,2,3)或者(23,2,3),所以你会输出4。如果无法以这种方式编写,则应输出0。 质数,例如019或是00000037此问题的有效质数。 测试用例: 5 -> 1 55 -> 1 3593 -> 4 (359 and 3, or 3 and 593, or 3 and 59 and 3, or 3593) 3079 -> 2 (3 and 079, or 3079) 119 -> 0 5730000037 -> 7 (5,7,3,000003,7, 5,7,3,0000037, 5,73,000003,7, 5,73,0000037, 5,73000003,7, 5,7,30000037, 5730000037) 0-> undefined …

11
子集总和的N位变化
对于我正在编写的另一个挑战,我需要验证测试用例是否可以用有界整数解决。具体来说,对于整数A和整数位宽度的非空数组,我需要验证以下内容n: 中的所有整数a都A满足-2**(n-1) <= a < 2**(n-1)(用n-bit二进制数的补码整数表示)。 的长度A小于2**n。 A满足的总和-2**(n-1) <= sum(A) < 2**(n-1)。 元素的所有组合均A满足所有上述条件。 自然,我决定将这个问题外包给您! 给定一个整数数组A和一个正整数位宽度n,请验证是否A满足上述条件。 测试用例 [0, 0, 0], 2: True [0, 0, 0, 0], 2: False (violates #2) [1, 2, 3, 4, 5], 8: True [1, 2, 3, 4, 5], 2: False (violates all conditions) [1, 2, 3, 4, …

14
模组平衡清单
介绍 假设我有一个整数列表,比如说L = [-1,2,2,1,2,7,1,4]。我喜欢在生活中保持平衡,因此很高兴看到它具有与偶数元素一样多的奇数元素。更重要的是,它在3的所有模数类中也具有相等数量的元素,并且其元素位于: [-1,2,2,1,2,7,1,4] 0 mod 3: 1 mod 3: 1 7 1 4 2 mod 3: -1 2 2 2 可悲的是,对于4的模数类,它不再成立。一般情况下,我们说一个非空列表被模平衡Ñ如果它具有相同数量的在所有模类元素Ñ指此数目不是0上面所列大号是平衡的模2和3,但非平衡模4。 任务 您的输入是一个非空列表L,该列表以任何合理的格式获取整数。您的输出是N≥2的那些整数的列表,以使L取N为模,并且仍然采用任何合理的格式。输出的顺序无关紧要,但是它不应包含重复项。 确保输出中只有有限数量的数字,这恰恰意味着并非L的所有元素都在其中出现相同的次数。无效输入的示例为[3],[1,2]和[0,4,4,0,3,3]。请注意,输出中的最大数字最多为max(L)-min(L)。 每种语言的最低字节数为准,并且适用标准代码高尔夫球规则。 测试用例 [1,1,2] -> [] [1,1,5] -> [2,4] [1,1,24] -> [23] [1,2,3,2] -> [2] [12,12,-4,20] -> [2,3,4,6,8,12,24] [1,1,12,12,-3,7] -> [3,10] [-1,2,2,1,2,7,1,4] -> [2,3] [4,-17,-14,-18,-18,3,5,8] …

1
如何减少使用FASM编译的x86 ASM的EXE大小?
作为练习,我使用x86汇编语言创建了一个简单的解决方案来应对这一挑战。我正在Windows上使用FASM运行它。这是我的源代码: format PE console entry start include 'WIN32A.inc' section '.text' code executable start: push char ; Start at 'A' call [printf] ; Print the current letter 4 times call [printf] call [printf] call [printf] inc [char] ; Increment the letter cmp [char], 'Z' ; Compare to 'Z' jle start ; …

7
我的孩子的字母垫是否按颜色正确分组?
我的孩子有一个字母垫可以玩,就像这样: 经过数月的随机放置地垫瓷砖后,我累了,并根据其背景颜色按部分分组放置了所有地垫瓷砖。因此,如果字母代表背景色,我会得到一个像这样的垫子: AABBCDDDE ABBCCCDEE ABCCCCDDE AACCCDDEE AAAACCCCE AAAAAACCC 因此,对于颜色A,B,C,D和E,总有一种方法可以在垫子中水平或垂直连接具有相同背景颜色的所有图块。这就是我所说的按颜色正确分组的垫子。您可以在下表中看到上一个示例的组: AA A A AA AAAA AAAAAA BB BB B C CCC CCCC CCC CCCC CCC DDD D DD DD E EE E EE E 此外,每种颜色只有一组,因此这是无效的: ABA ABA 因为颜色A磁贴不仅仅分为一组。这也将无效,因为这些图块既不水平连接也不垂直连接: AB BA 挑战 给定一个可打印ASCII范围内的二维字符数组(只要两个维度的大小均等于或大于1,就不必是正方形),请检查该数组是否表示按颜色正确分组的垫子(数组中的每个字符都代表不同的颜色)。输入可以采用任何合理的格式,只要它表示二维字符数组(2D char数组,相同长度的字符串数组,依此类推),并且输出必须是一对真值和假值(0 / 1,'t'/'f',true / false,无论返回什么,并且返回值在输入中都保持一致)。 这是代码高尔夫,因此每种语言中最短的程序/函数/方法/ lambda可能会获胜! 例子 A …

30
2因素分解
给定一个自然数,n编写一个程序或函数,以获取可用于实现的所有可能的两个因子乘法的列表n。为了更好的理解,你可以去什么假装http://factornumber.com/?page=16777216看的时候n是16777216我们得到如下列表: 2 × 8388608 4 × 4194304 8 × 2097152 16 × 1048576 32 × 524288 64 × 262144 128 × 131072 256 × 65536 512 × 32768 1024 × 16384 2048 × 8192 4096 × 4096 无需在这里打印漂亮的东西。要求是每个条目(一对因素)之间必须很好地区分,并且在每个对内部,第一个因素也必须彼此很好地区分。如果选择返回列表/数组,则内部元素可以是具有两个元素的列表/数组,也可以是支持C ++之类的东西的某种语言结构std::pair。 不要打印乘以1的乘积,也不要重复将第一个因数换成第二个因数的项,因为它们几乎没有用。 没有赢家;这将是每个语言的高尔夫代码。

27
计算数字序列之和超过给定值的最低数字
给定您有一个无限的数字序列,定义如下: 1: 1 = 1 2: 1 + 2 = 3 3: 1 + 3 = 4 4: 1 + 2 + 4 = 7 5: 1 + 5 = 6 6: 1 + 2 + 3 + 6 = 12 7: 1 + 7 = 8 ... 序列是的除数之和n,包括1和n。 给定正整数x作为输入,请计算n将产生大于的结果的最小数字x。 …
14 code-golf  math 

30
追加和删除
给定一行仅包含字母的行,请执行以下操作: 您维护的字符串开头是空的。 如果下一个输入字符在字符串中,请将其从字符串中删除。 如果下一个输入字符不在字符串中,请将其附加到字符串中。 输出字符串的最终状态。 您可以放心地假设输入至少包含一个字符(即非空),但是不能保证输出不为空。 伪代码(随意打高尔夫球): str = EMPTY for each character ch in input if ch exists in str remove all ch from str else append ch to str print str 输入匹配正则表达式^[A-Za-z]+$。 样本测试案例: ABCDBCCBE -> ADCBE ABCXYZCABXAYZ -> A aAABBbAbbB -> aAbB GG -> (empty) 输入可以以任何适用的方式给出,但必须将其视为字符串,并且对于输出也应相同。这个程序应该不会有错误退出。 每种语言中最短的程序将获胜! 额外(可选):请说明您的程序如何工作。谢谢。
14 code-golf  string 

8
求和顶点连接
比方说,你有一个正整数ñ。首先,建立一个具有N个顶点的规则多边形,相邻顶点之间的距离为1。然后将每个顶点之间的线连接到另一个顶点。最后,计算所有行的总和。 例 给定输入N = 6,用连接每个顶点和其他顶点的线构建一个六边形。 如您所见,总共有6条边界线(长度= 1),3条边界长度加倍(长度= 2)的线和其他6条线,我们可以使用毕达哥拉斯定理来计算,这是 如果将线的长度相加,我们将得到(6 * 1)+(3 * 2)+(6 * 1.732)= 22.392。 附加信息 由于不将具有2个或更少顶点的结构视为多边形,因此NaN对于N = 1,输出0(或,因为单个顶点之间的距离没有多大意义),因为单个顶点无法连接到其他顶点,而对于1,则输出1 N = 2,因为两个顶点通过一条直线连接。 输入值 任何合理格式的整数N。 输出量 所有行的长度加总起来,至少精确到小数点后三位,可以作为函数返回值或直接打印到stdout。 规则 禁止出现标准漏洞。 这是code-golf,因此以任何语言表示的最短代码(以字节为单位)将获胜。 祝好运! 测试用例 (Input) -> (Output) 1 -> 0 or NaN 2 -> 1 3 -> 3 5 -> 13.091 6 …

14
两个名字
一个人有两个姓氏,如果他们的姓氏也是一个普通的名字。您需要确定列表中的哪些全名是两个名字。 John Smith John Doe Luke Ryan Ryan Johnson Jenna Jackson Tom John 名字列中出现的任何名称都可能是名字。如果名字在名字列中的出现次数大于在姓氏列中的出现次数,则它绝对是名字。 在上面的列表中,John姓氏出现两次,姓氏出现一次,因此绝对是名字。Ryan第一次出现在姓氏中,最后一次出现,所以(大概)是名字。 因此,Tom John肯定有两个名字并且Luke Ryan可能确实有两个名字。 给定以上列表,您的代码应输出以下内容: Luke Ryan has two first names Tom John definitely has two first names 输入值 如上所述,您的代码将采用全名列表(标准输入,每行一个),并用空格分隔。名称可以包含连字符或撇号,但是您将永远不会获得包含空格的名字或姓氏(即no Liam De Rosa,但Liam De-Rosa还是Liam De'Rosa公平的游戏。换句话说,名称将匹配)[-'A-Za-z]+。 每个全名都是唯一的(即John Smith不会出现两次)。 输出量 打印全名(每行一次),后跟一个has two first names或definitely has two first names是否符合上述条件。名称只能打印一次。 …
14 code-golf  string 

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

27
RLE Brainfuck方言
RLE Brainfuck (与BF-RLE有关) 假设的Brainfuck RLE(游程长度编码)方言接受8个命令的符号,并且还接受数字。这些数字用于表示命令的连续重复次数,因此可以对源代码进行行程编码。 8>等于>>>>>>>>。 长度始终在命令的左侧。 您的任务是编写最短的程序/函数,将输入字符串(RLE Brainfuck片段)转换为常规Brainfuck程序。 例如: 输入: 10+[>+>3+>7+>10+4<-]3>2+.>+.7+2.3+.2<2+.>15+.>.3+.6-.8-.2<+.<. 输出: ++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++.>+.+++++++..+++.<<++.>+++++++++++++++.>.+++.------.--------.<<+.<. 每种语言中字节数最短的代码将获胜。

30
多少个素数?
表示自然数的一种方法是乘以质数的指数。例如,6可以由2 ^ 1 * 3 ^ 1表示,而50可以由2 ^ 1 * 5 ^ 2表示(其中^表示指数)。与其他方法相比,此表示形式中的质数可以帮助确定使用这种表示方法是否更短。但是因为我不想手工计算这些,所以我需要一个程序为我做这些。但是,由于在回家之前我必须记住该程序,因此它必须尽可能短。 你的任务: 编写程序或函数以确定该数字表示形式中有多少个不同的质数。 输入: 通过任何常规方法获取的整数n,使得1 <n <10 ^ 12。 输出: 引言中概述了表示输入所需的不同素数的数量。 测试用例: 24 -> 2 (2^3*3^1) 126 -> 3 (2^1*3^2*7^1) 1538493 -> 4 (3^1*11^1*23^1*2027^1) 123456 -> 3 (2^6*3^1*643^1) 这是OEIS A001221。 得分: 这是代码高尔夫球,最低得分(以字节为单位)获胜!

2
就像路径段;第一次感动
给定2个或更多2D笛卡尔点的有序列表,如果路径接触自身或自相交,则输出真实值;否则,如果它不接触自身或不自相交,则输出虚假值。 您可以假定列表中的连续点是不同的。 例子: (0,0), (1,0) -> falsey (0,0), (1,0), (0,0) -> truthy (0,0), (1,0), (1,1), (0,0) -> truthy (0,0), (2,0), (1,1), (1,-1) -> truthy (0,0), (10,0), (0,1), (10,1), (0,2), (10,2) -> falsey 请注意,我在此处给出的所有坐标都是整数。您可以支持{整数,小数,有理数,浮点数,...}之外的任意坐标输入。但是您的实现计算必须为给定的任何输入给出正确的答案。

25
跳数
任务 打印整数n,其中 12 <= n <= 123456789和中的所有连续数字对在它们之间具有相同的正差(例如2468,但不是2469)。 没有输入。 输出: 12 13 14 15 16 17 18 19 23 24 25 26 27 28 29 34 35 36 37 38 39 45 46 47 48 49 56 57 58 59 67 68 69 78 79 89 123 135 147 159 234 …

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.