Questions tagged «code-golf»

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

15
除数富数和穷数
介绍 在奇异的整数世界中,除数就像资产,他们习惯称除数比其反转多的数字为“有钱”,而称除数比其反转数少的数字为“差”。 例如,号码240124012401有五个除数:1,7,49,343,24011,7,49,343,24011,7,49,343,2401,而其逆转,104210421042,只有四个:1,2,521,10421,2,521,10421,2,521,1042。 因此,240124012401被称为富人数量,而104210421042一差数。 给定此定义,我们可以创建以下两个整数,分别包含有数字和无数字: (here we list the first 25 elements of the sequences) Index | Poor | Rich -------|------|------- 1 | 19 | 10 2 | 21 | 12 3 | 23 | 14 4 | 25 | 16 5 | 27 | 18 6 | 29 | …

22
ssTTsSTtRrriinInnnnNNNIiinngg
挑战 对于字符串的每个字符(最后一个字符除外),请执行以下操作: 输出当前字符。 接下来,从以下列表中随机输出1-5(含)之间的随机次数: 当前角色 字符串的下一个字符 您当前使用的字符的开关盒版本 字符串的下一个字符的开关盒版本。 测试用例 String -> SSSTSStrTrIiinIIngn , . , . , . Hello world! -> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf 笔记 如果字符是字母(AZ和az)的一部分,则仅需要应用字符的切换大小写版本。 …

17
我的号码中有多少个连续的降序号?
2019年已经到来,也许每个人都注意到了这个数字的特殊性:实际上它是由两个子数字(20和19)组成的,代表两个连续的降序数字。 挑战 给定一个数字x,返回可以通过采用的子数字形成的连续的,递减数字的最大序列的长度x。 注意事项: 子数字不能包含前导零(例如1009,不能拆分为10,09) 连续和降序表示该序列中的数字必须等于先前的数字-1,或者ñ我+ 1= n一世− 1ni+1=ni−1n_{i+1} = n_{i}-1(例如52,不能分割为,5,2因为5并且2不连续,2 ≠ 5 - 1) 顺序必须使用完整的电话号码,如获得7321你不能放弃7,并获得序列3,2,1 只能从数来获得的一个序列,例如3211098不能被分成两个序列3,2,1和10,9,8 输入值 整数(>= 0):可以是数字,字符串或数字列表 输出量 给定最大数目的递减子数字的单个整数(请注意,此数字的下限为1,即一个数字由其自身以长度为1的降序组成) 例子 : 2019 --> 20,19 --> output : 2 201200199198 --> 201,200,199,198 --> output : 4 3246 --> 3246 --> output : 1 87654 --> 8,7,6,5,4 --> output …
18 code-golf 

9
将网格划分为三角形
目标 挑战的目标是产生一个函数,n该函数计算将n X 1网格划分为三角形的方式的数量,其中三角形的所有顶点均位于网格点上。 例 例如,有14种方法来划分2 x 1网格,因此f(2) = 14通过以下分区 ,其中分区分别具有2、2、2、2、4和2个不同的方向。 计分 这是代码高尔夫球,因此最短的代码获胜。

8
这是四边形周期性的吗?
在数学中,循环四边形是一个顶点都位于同一圆上的四边形。换句话说,每个顶点都位于其他三个顶点的外接圆上。有关更多信息,请参见MathWorld文章。 例子 这些四边形是循环的: 该梯形不是周期性的。 (图片来自维基百科) 目的 给定形成凸四边形的四个顶点的逆时针坐标,确定四边形是否为循环的。 坐标将是整数(但是,请注意,圆心坐标和外接半径不一定是整数。)如上一段所隐含,没有三个点是共线的,也没有两个重合的点。 输入输出 您可以使用任何合理的格式进行输入。特别是[[x1,x2,x3,x4],[y1,y2,y3,y4]],[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]和复数无一不精。 使用true和false的任何不同一致值进行输出。 测试用例 真正: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 假: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

30
在64位整数中找到前导零的数目
问题: 在64位有符号整数中找到前导零的数目 规则: 输入不能视为字符串;数学和按位运算可以驱动算法的任何事物 无论使用哪种语言,都应针对数字的64位带符号整数表示形式验证输出 高尔夫球场默认规则适用 以字节为单位的最短代码获胜 测试用例: 这些测试假定二进制补码有符号整数。如果您的语言/解决方案缺少或使用带符号整数的其他表示形式,请注明出来并提供其他可能相关的测试用例。我已经提供了一些解决双精度问题的测试用例,但是请随时建议其他应该列出的用例。 input output 64-bit binary representation of input (2's complement) -1 0 1111111111111111111111111111111111111111111111111111111111111111 -9223372036854775808 0 1000000000000000000000000000000000000000000000000000000000000000 9223372036854775807 1 0111111111111111111111111111111111111111111111111111111111111111 4611686018427387903 2 0011111111111111111111111111111111111111111111111111111111111111 1224979098644774911 3 0001000011111111111111111111111111111111111111111111111111111111 9007199254740992 10 0000000000100000000000000000000000000000000000000000000000000000 4503599627370496 11 0000000000010000000000000000000000000000000000000000000000000000 4503599627370495 12 0000000000001111111111111111111111111111111111111111111111111111 2147483648 32 0000000000000000000000000000000010000000000000000000000000000000 2147483647 33 0000000000000000000000000000000001111111111111111111111111111111 2 62 …

8
三进制if转换器
在Java / .NET / C / JavaScript / etc中。您可以使用三元if来缩短if语句。 例如(在Java中): // there is a String `s` and an int `i` if(i<0)s="Neg";else if(i>0)s="Pos";else s="Neut"; 可以通过三元数缩短为: s=i<0?"Neg":i>0?"Pos":"Neut"; 挑战: 输入:设置单个变量的常规if-else(可以嵌套)。 输出:转换后的三进制-if。 挑战规则: 您可以假设所有if-else情况都可能没有括号(因此,每个if / else-if / else块都有一个主体)。 您可以假设将没有任何空格,制表符或换行符,除了每个空格,制表符或换行符else(包括处的else if)之外。 您可以假设使用的变量名始终是一个小写字母([a-z])。 赋予变量的值可以是以下之一: 字符串(不带空格/选项卡/新线),这将通过双引号包围(即"Test","SomeString","Example_string"等等)。您可以假定字符串将永远不包含子字符串if或else,也不包含空格,制表符,换行符(转义的双引号)或字符=。它可以包含字符><(){}[];?:!&|,但只能在可打印的ASCII范围内(['!' (33), '~' (126)])。 整数(即0,123,-55等等) 小数(即0.0,0.123,-55.55等等) 这些值永远不会混淆。因此,分配的所有变量都是整数,并非某些是整数,有些不是字符串。 括号内的条件可以包含以下字符=<>!+-/*%&|[],a-z,0-9。您可以假设将没有任何内部括号,也可以假设将不使用任何使用多个字符(如if(if<0))的(令人困惑)字段。 您可以假设不会有i*=10代替的快捷方式i=i*10。 您无需处理悬而未决的else案件,因此if可以将所有案件与配对else。即if(a)if(b)r=0;else r=1;不是一个可能的输入案例。if(a)if(b)r=0;else r=1;else …
18 code-golf  string 

30
文字压缩
在下面的给定文本中,文本中有些单词在文本中重复多次。使用任何编程语言编写简短的代码即可压缩文本以显示它。换句话说,使用最少的字节数来显示文本。 文本是: Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?

25
将数字从Zeckendorf表示形式转换为十进制
关于Zeckendorf表示形式/基本斐波那契数 这是一个以斐波那契数为基础的数字系统。数字由0和1组成,每个1表示该数字包含相应的斐波那契数,而0表示不包含。 例如,让我们将所有<= 10的自然数转换为基本斐波那契数。 1将成为1,因为它是1的总和,这是一个斐波那契数, 2将变为10,因为它是2的总和,这是一个斐波那契数,并且不需要1,因为我们已经实现了所需的总和。 3将变为100,因为它是3的总和,这是一个斐波那契数,它不需要2或1,因为我们已经实现了所需的总和。 4将成为101,因为它是[3,1]的和,两者均为斐波那契数。 5将成为1000,因为它是5的总和,这是一个斐波纳契数,我们不需要任何其他数。 6是1001,因为它是斐波那契数5和1的总和。 7是1010,因为它是斐波那契数5和2的总和。 8将成为10000,因为它是斐波那契数。 9将成为10001,因为它是斐波那契数8和1的总和。 10将成为10010,因为它是斐波那契数8和2的总和。 让我们将一个随机的基本斐波那契数10101001010转换为十进制:首先,我们编写相应的斐波那契数。然后,我们计算1以下数字的总和。 1 0 1 0 1 0 0 1 0 1 0 144 89 55 34 21 13 8 5 3 2 1 -> 144+55+21+5+2 = 227. 阅读有关基本斐波那契数字的更多信息:link,它还有一个将正整数转换为基本斐波那契数字的工具。您可以尝试一下。 现在的问题: 您的任务是在Zeckendorf表示形式中获取一个数字,然后输出其十进制值。 输入是一个仅包含0和1的字符串(尽管您可以根据需要使用任何输入方式)。 以十进制输出一个数字。 测试用例:(格式为输入->输出) 1001 -> 6 …

30
max()还不够
介绍 今天,一位朋友以稍微不同的方式提出了这个问题:“单个[Python]命令可以确定某些整数中的最大值,并且它们不相等吗?”。 虽然我们在“单个命令”的合理定义内没有找到实现此目的的方法,但我认为打高尔夫球可能是一个有趣的问题。 挑战 “ 如果并且都不都是整数,则返回整数列表中的最大值。 ” 进一步来说: 给定一个仅包含逗号分隔的整数列表的字符串: 如果它们相等,则什么也不返回/输出 否则,返回/输出最大 规则 的输入必须是仅包含整数的逗号分隔的列表的字符串 该输出必须是没有(任何种类的输出),否则最大的元素从输入,表示它是在输入 条目可以是完整程序,也可以只是一个功能,只要您提供一些测试方法即可! 假设条件 假设输入列表元素可以超过一位,但不超过(2 32 − 1) 假设输入列表中的元素不超过一百万 假设输入将不包含负值 假设输入永远不会为空 为避免疑问,紧接在“更具体地”之后给出的对挑战的解释应取代其上方的挑战声明(“返回最大的……”)。 例子 (1)全部相等: Input: 1,1 Output: (2)不同: Input: 1,2 Output: 2 (3)零!: Input: 0,0,0,0,0,0,0,1,0,0 Output: 1 (4)随机: Input: 7,3,8,4,8,3,9,4,6,1,3,7,5 Output: 9 (5)更大的数字,更大的列表: Input: 627,3894,863,5195,7789,5269,8887,3262,1448,3192 Output: 8887 其他示例: …
18 code-golf 

26
coprime这个词是吗?
给定一个单词,将每个字母都当作英语字母中的数字(因此a变成1,b变成2,z变成26,依此类推),然后检查所有它们(包括重复项)是否都是成对的互质数。 输入的内容正好是一个小写英文字母的单词。如果单词是互质的,则输出为事实:任何真值/假值,但只有它们的两个变体。禁止出现标准漏洞。 测试用例: man: True day:(True感谢ØrjanJohansen) led:False(l=12和d=4有gcd=4) mana:(True尽管a多次出现,1和1是互质数) mom:False(gcd(13,13)=13)) of:False(感谢XNOR;虽然15∤6,gcd(15,6)=3) a:(True如果没有成对的字母,也将该单词视为互素) 这是一个代码高尔夫球,因此以字节为单位的最短代码胜出!

20
简约熔岩灯
介绍: 我想每个人都知道熔岩灯是什么,但万一他们不知道: (图片来源) 它们基本上是在半透明液体中包含蜡的玻璃管。打开灯时,底部会被加热,从而导致密度变化,因此蜡会浮到顶部。冷却后,它会再次掉落,从而产生我们上面看到的效果。 灯的底座通常需要大约45-60分钟的时间才能升高到足以将固体蜡变为液体蜡的温度(如果灯位于室温下的区域)。 有关Wikipedia的更多信息,该信息也用作上述某些文本的来源。 挑战: 给定一个正整数n,该值指示自从我们打开熔岩灯以来经过的分钟数,请基于五个级别的整数输出熔岩灯的随机状态。 对于此挑战,我们将说熔岩灯总共包含1000单位蜡,并且我们可以将蜡置于5个级别。 1)如果n低于45,熔岩灯仍在加热,因此输出将是四个空行,1000底部是: 1000 2)如果熔岩灯的温度n在此范围内,则[45, 60)其温度升高到足以使蜡移动的程度,但还没有很高。蜡可以达到并包括第三级。 3)如果n为60或更高,则蜡的含量可以为五个级别中的任何一个。 因此,给定正整数n作为输入,我们将牢记上述三个规则来输出随机状态。 以下是一些示例输出: 可能的输出n是>= 45: 523 106 371 913 87 可能的输出n是>= 60: 73 113 312 5 497 284 55 637 24 常量输出n是<= 44(以及任何可能的输出n): 1000 挑战规则: 即使上面的级别不为空,也可以有空行。 只是0不允许在任何行上。应该为空。 输出有些灵活。您可以输出字符串/对象的列表/数组,而不是上述的以换行符分隔的结果。我说字符串/对象的原因是由于上述规则。一个空行应"",null,[]等,但不能是0或负整数(也不能被false)(即["", "", 913, "", 87]用于n >= 45)。您还可以反转输出(即,1000\n\n\n\n代替\n\n\n\n1000或[87, null, 913, null, …

24
检查我的隧道阵列
假设您有一个整数数组,其非负值是指向同一数组中其他位置的指针,只是这些值表示隧道,因此如果位置A中的值为正并指向位置B,则位置中的值B也必须为正,并指向位置A以代表隧道的两端。所以: 挑战 给定一个整数数组,请检查该数组是否符合作为隧道数组的限制,并为true和false返回两个不同的连贯值。 对于非隧道位置,数组中的值将小于零;对于隧道位置,数组中的值将小于零或大于零。如果您的数组是1索引的,则零值表示非隧道位置。不需要检查非隧道值。 如果单元格中的正值指向自身,那是错误的。如果A指向B,B指向C,C指向A,那是错误的。如果一个正值指向数组的范围之外,那是错误的。 例子 以下示例是0索引的: [-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 points to position 6 and vice versa) [1, 0] Truthy (position 0 points to position 1 and vice versa) [0, 1] Falsey (positions 0 and 1 point to themselves) [4, 2, …

14
平方随机对称
挑战 编写返回或打印平方随机对称矩阵的程序或函数。 输入值 N:矩阵的大小,即6 x 6 输出量 矩阵。您可以打印它,将其作为字符串(带有换行符)或作为列表/数组的列表/数组返回。 规则 您需要至少使用N不同的字符,其中N是方阵(输入)的大小。由于我们仅使用字母[a,z] [A,Z]和数字[0,9](当时仅使用1个数字),因此可以假定N < 27and N > 2,这是因为在那时N <= 2您不能同时拥有两个字母和数字。最后但并非最不重要的一点是,每个字母/数字的发生概率都必须为非零(不必均匀分配)。但是,结果必须至少具有N不同的字母/数字。 矩阵必须水平和垂直对称。 恰好2行2列必须严格包含一个个位数(它的位置也应该是随机的)。其余的行/列将仅包含字母。将字母视为[a,z]和[A,Z],当然将一位数字视为[0,9]。 只是要更容易,你可以假设信件的情况下无所谓,只要案件是对称的意思是:a=A, b=B, etc。 每个可能的输出都必须具有非零的发生概率。随机分布不需要是统一的。 例 输入 8 输出: c r p s s p r c r k o z z o k r u t 2 a a 2 …
18 code-golf  matrix 

9
填充字符串列表之间的最大汉明距离
等长的两个字符串之间的汉明距离是相应字符不同的位置数。如果弦的长度不相等,则汉明距离未定义。 挑战 编写一个程序或函数,该程序或函数从字符串列表中的所有字符串对中找出最大汉明距离,并根据下文所述的规则进行填充。 字符将来自内部a-zA-Z0-9。 字符串的长度可能不相等,因此对于每个比较而言,较短的字符串都必须按以下方式填充: 从头开始将字符串包装多次,以匹配所需的长度 每次奇数换行(第1,第3,第5等)更改字母的大小写 a-zA-Z包装时,将外部物品保持不变 例如,假设您需要填充5个字符串ab9Cd,以使其最终以18个字符结尾。您最终将得到: ab9CdAB9cDab9CdAB9 ^^^^^ ^^^ 与^第一和第三包裹下加入到亮点的情况下更改。 输入输出 输入/输出格式灵活。您可以假定输入至少包含两个字符串,并且所有字符串都将至少包含一个字符。 输出为整数。 规则 这是代码高尔夫球。适用标准规则。 测试用例 [ "a", "b" ] => 1 [ "a", "b", "c" ] => 1 [ "a", "a", "c" ] => 1 [ "abc", "abcd" ] => 1 [ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => …
18 code-golf  string 

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.