Questions tagged «code-golf»

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

19
欧洲原语序列
给定一个正整数n,输出欧元原序列的第n个数字。 计算序列 该序列等于OEIS A242491。 如果可以通过使用尽可能多的不同的欧元硬币或纸币来组成数字,则数字是该序列的一部分,但每个只能使用一个。请注意,您不必考虑美分。 例: 6 将按顺序排列,因为它可以包含1欧元硬币和5欧元纸币。 4 不会按顺序排列,因为不能根据给定的要求形成。 为了给大家一个概览,以下是您必须考虑的带有欧元值的列表: 1欧元,2欧元,5欧元,10欧元,20欧元,50欧元,100欧元,200欧元,500欧元 请注意,此序列仅在0(是,包括0!)到888的范围内。 以下是此序列的前15个元素: 0、1、2、3、5、6、7、8、10、11、12、13、15、16、17 ... 测试用例 输入 -> 输出 2 -> 1 6 -> 6 21 -> 25 33 -> 50

18
素因数根
受数字根的启发,数字的素因数根是当您将一个数字的素因数加在一起,然后对所得数字重复该过程时出现的数字,直到您得到一个质数(它本身就是唯一的主要因素,因此是其自己的主要因素根。4的素数因数根为4,为2 * 2 = 2 + 2,这是唯一的大于1的整数的非素数因数根(这是另一种特殊情况,因为它没有素数)。由素因数根形成的OEIS序列为A029908。 例如,24的素因数根为: 24=2*2*2*3 2+2+2+3=9=3*3 3+3=6=2*3 2+3=5, and the only prime factor of 5 is 5. Therefore, the prime factoral root of 24 is 5. 你的任务: 编写一个程序或函数,以查找输入整数的素因数根。 输入: 通过任何合理的方法输入的整数,介于2和您的语言将支持的最大整数(包括)之间。不允许专门选择最大整数大小过低的语言(并且还会违反此标准漏洞) 输出: 整数,输入的素因数根。 测试用例: 4 -> 4 24 -> 5 11 -> 11 250 -> 17 得分: …

2
全方位展开
输入: 一串 输出: 1)首先,我们采取在输入串的末尾删除字符,直到我们留下的长度为正方形(即1,4,9,16,25,36,等等) 因此,abcdefghijklmnopqrstuvwxyz(长度26)变为abcdefghijklmnopqrstuvwxy(长度25)。 2)然后我们将其放在一个正方形中,从左到右一次一行: abcde fghij klmno pqrst uvwxy 3)我们在四个方向上都将其折叠,如下所示(我们不断展开,直到外部折叠的“块”不再具有内部字符可展开): m qrs l n ghi abcde ihgf jihg mn lk on lm srqp tsrq uvwxy qrs l n ghi m 需要注意的一些事情,当我们向外折叠时,我们基本上像这样镜像(为澄清起见添加了数字,这些数字表示这些示例中的“索引”): 当我们向外折叠时: 123 to: 321 123 fghij ihgf j 当我们折叠右侧时: 123 to: 123 321 fghij f jihg 当我们向上折叠时: …

15
井字游戏-X或O?
背景 如果您熟悉井字游戏,请跳到“任务”(我想大多数人是!) 井字游戏是一款著名的两人游戏。它由一个3x3的棋盘组成,由两个玩家逐渐填充(以下说明);第一个玩家使用角色X,另一个使用O。获胜者是第一个获得水平,垂直或对角线连续3个相同字符(X或O)的人。如果棋盘已满,并且没有一个玩家设法获得上述连续的三个角色,则游戏以平局结束。请注意,如果任一位玩家的胜利总数少于9步(如果出现平局,则不会发生),游戏结束时可能会有空位。 任务 给定游戏结束时的井字游戏板(以字符串,矩阵,9个有序值的平面列表以及任何其他体面格式的形式),确定谁赢了游戏。 输入将包含不同且一致的值,一个表示X,一个表示O,另一个表示空白。 您的程序应该能够输出3个不同的,一致的和非空的值:一个以防万一X,另一个以防万一O如果玩家并列,则为另一个。 请在答案中指定这些值。您可以假定输入将是有效的井字游戏板。 测试用例 X,O,_在这里的输入值; X wins,O wins并Tie用于输出。 X O X O X _ O _ X 输出:X wins。 X _ O X O _ X O X 输出:X wins。 X O X _ O X _ O _ 输出:O wins。 X O X O …

14
计算威尔逊数
给定正整数n,计算第n 个 威尔逊数 W(n),其中 和ë = 1,如果Ñ具有原根Ñ,否则ê = -1。换句话说,如果不存在1 < x < n-1和x 2 = 1 mod n的整数x,则n具有原始根。 这是代码高尔夫球,因此请为计算n的函数或程序创建最短的代码输入整数 n > 0的第个威尔逊数。 您可以使用基于1或基于0的索引。您也可以选择输出前n个威尔逊数。 这是OEIS序列A157249。 测试用例 n W(n) 1 2 2 1 3 1 4 1 5 5 6 1 7 103 8 13 9 249 10 19 11 329891 12 …

29
怪异的评分系统
Weirdo Incorporates有一种奇怪的方法,可以根据员工在办公室的工作天数来对其员工进行评分: 0 - 13 : F 14 - 170 : E 171 - 180 : D 181 - 294 : C 295 - 300 : B 301 - 365 : A Note: The range is inclusive (i.e. 0-13 means 0 days and 13 days both will evaluate as grade …

27
泛指倍增
灵感来自这个 CMC 给定一个大于0的正整数,对其执行以下操作: 如果所有十个数字(1234567890)都至少有一次,输出计数并退出程序 否则,将数字加倍并重复,增加计数。 计数从0开始,是输入加倍的次数。例如,如果输入为617283945,则需要将其加倍一次,因为1234567890中包含所有10位数字。 这是一个代码高尔夫球,因此最短的代码获胜。如果需要,可以将输入作为字符串。 测试用例 input => output 617283945 => 1 2 => 67 66833 => 44 1234567890 => 0 100 => 51 42 => 55

18
如何将省略号复数?
这显然是省略号。 受启发 聊天消息的。 你的挑战 给定一个列表,空格或逗号分隔的字符串,用省略号将其括起来。 省略一个单词: 从单词开始。 将原始单词的第一个字母添加到末尾。 在原始单词的最后一个字母的末尾加上2。 将原始单词的倒数第二个字母添加到末尾。 将原始单词的第一个字母添加到末尾。 将原始单词的最后一个字母添加到末尾。 重复步骤5和6。 你完成了! 您可以假设: 输入的单词只能是字母数字 输入和输出可以是用空格分隔的字符串或列表 输入将仅包含单词 单词长度至少为2个字母 输入将匹配正则表达式 /^[a-z0-9]{2,}( [a-z0-9]{2,})*$/i 您可以具有不同的输入和输出格式 还有更多... 测试用例: ellipsis -> ellipsisessieses goat -> goatgttagtgt covfefe -> covfefeceefcece programmer5000 -> programmer5000p000p0p0 up vote down goat -> upuppuupup voteveetveve downdnnwdndn goatgttagtgt it is golf yo …
14 code-golf  string 

28
拿起你的手机!它在振动!
您刚购买了一部新手机,但是您不太喜欢它的振动方式,因此您决定要创建自己的振动模式。因此,您编写了一个使用关键字的程序long,short并pause根据这些关键字使手机振动。 任务 创建一个小程序,它接受的字符串long,short和pause并输出表示一个电话振动的语音声音的另一个字符串;Rrrr - Rr long声音就是Rrrr short声音Rr (套管问题) pause是破折号- 所有声音都用破折号分隔,周围有空格' - ' 测试用例 输入: long long short long short 输出:Rrrr - Rrrr - Rr - Rrrr - Rr 输入: long long long short short short 输出:Rrrr - Rrrr - Rrrr - Rr - Rr - Rr 输入: short short short …
14 code-golf  string 

11
案例匹配查找替换
以三个输入,文本串T; 一串要替换的字符F;以及用替换它们的字符串R。对于每个T具有相同(不区分大小写)字符的子字符串F,请将其替换为中的字符R。但是,请保持与原始文本相同的大小写。 如果输入的字符R多于个F,则多余的字符应与输入的大小写相同R。如果其中包含数字或符号F,则其中的相应字符R应保持其大小写R。F不一定会出现在中T。 您可以假设所有文本都在可打印的ASCII范围内。 例子 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

8
查找最短的唯一子列表
给定一个列表列表,找到最短列表,它是一个列表的连续子列表。 例如,如果我们有 [[1,2,3], [1,2,3,4], [2,4,5,6], [1,2,4,5,6]] 最短的连续子列表将是[3,4]因为它仅出现在第二个列表中。 如果没有唯一的连续子列表(这需要至少一个重复的条目),则输出一个空列表。这是一个例子 [[1,2,3], [1,2,3], [1,2]] 如果有多个最小大小的连续子列表,则可以输出其中任何一个或包含所有子列表的列表。例如,如果输入是 [[1,2,3],[2],[1],[3]] 你可以输出两种[1,2],[2,3]或[[1,2],[2,3]]。如果选择执行后一种选项,则可能在只有一个解决方案的情况下输出单例列表。 只要在其他列表中没有出现,输出就可能在同一列表中出现多次。例如 [[1,2,1,2],[2,1]] 应该输出,[1,2]因为它[1,2]是第一个列表的子列表,但不是第二个列表的子列表,即使它是以两种不同的方式是第一个列表的子列表。 您可以将包含任何类型的列表的列表作为输入,只要该类型具有100个以上的可能值即可,即没有布尔值。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [[1,1]] : [1] [[1],[1]] : [] [[1,1],[1]] : [1,1]

12
找出第n个亚伦编号
背景 甲露丝-亚伦一对是一对连续的正整数的n和n+1,使得所述质因数的总和(计数重复素因子)的每个整数相等。例如,(714,715)由于714=2*3*7*17是715=5*11*13,和,所以是Ruth-Aaron对2+3+7+17=5+11+13=29。卡尔·波默兰斯(Carl Pomerance)选择了露丝·亚伦(Ruth-Aaron)这个名字作为对贝贝·露丝(Babe Ruth)职业生涯本垒打的总和714,从1935年5月25日到1974年4月8日,这是世界纪录,当时汉克·亚伦(Hank Aaron)达到了715本垒打。您可以在此Numberphile视频中了解有关这些数字的迷人历史的更多信息。 目标 编写一个完整的程序或函数,给定一个正整数n,该函数将输出nth Aaron数,其中nth数定义为nth Ruth-Aaron对的较大整数。因此,n第Aaron数是a(n)+1,在OEIS序列A039752中a(n)的n第th项。 测试用例 前几个亚伦数字是 6,9,16,78,126,715,949,1331,1521,1863,2492,3249,4186,4192,5406,5561,5960,6868,8281,8464,10648,12352,14588,16933,17081,18491,20451,24896,26643,26650,28449,28810,33020,37829,37882,41262,42625,43216 规则 禁止出现标准漏洞。 输入和输出可以采用任何方便的格式。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。

12
前置,追加序列
任务 prepend,append-Sequence像这样递归定义 a(1)= 1 如果n是偶数,则a(n)= a(n-1).n 如果n为奇数,则a(n)= na(n-1) 哪里。表示整数串联。 因此,前几个术语是:1,12,312,3124,53124,531246,7531246,...这是A053064。 您的任务是,给定a> 0的整数以返回n,以使prenend,append-Sequence中的第n个元素等于a,如果不存在n则返回0,负数或错误输出等。 规则 输入可以作为整数,字符串,字符/数字列表等。 输出可以打印到STDOUT或返回(整数,字符串等都可以) 在输入无效的情况下,如果不存在这样的n,则您的程序可以执行任何操作,但返回正整数(例如,永远循环,返回0等)。 您可以选择使用0索引,但是如果不存在n,则输出不能为0 测试用例 1 -> 1 12 -> 2 21 -> 0 123 -> 0 312 -> 3 213 -> 0 211917151311975312468101214161820 -> 21 2119171513119753102468101214161820 -> 0 333129272523211917151311975312468101214161820222426283031 -> 0 999795939189878583817977757371696765636159575553514947454341393735333129272523211917151311975312468101214161820222426283032343638404244464850525456586062646668707274767880828486889092949698100 -> 100

3
解决手推车问题
哲学家们一直在思考台车问题。不幸的是,还没有人解决过这个问题。幸运的是,作为程序员,我们可以使用计算机为我们解决问题! 输入值 您的程序将输入一个(有限的)有向图(最多有一个从x到的边y,对于任何x和而言y),并带有一个指定的节点,并且在每个边上附加一个非负整数(表示与该轨道相关的人数) 。另外,每个节点至少具有一个出口边缘。 手推车从指定的节点开始。每次转弯时,如果手推车在节点处x,那么功利主义者就会选择一条边(x,y)。那个边缘的人死了,手推车现在处于边缘y。这个过程将永远持续下去。 请注意,人只能死一次,因此,如果边缘(x,y)将n人绑在其上,而手推车经过它们,例如,滑过100次,它仍然只会导致n死亡。 输出量 功利主义者以使死亡人数最小化的方式做出选择(这是有限的,因为只有有限的人)。您的程序将输出该号码。 输入格式 您可以按照自己喜欢的任何合理方式获取输入图。例如,您可以将其作为矩阵,并将指定的节点计为标记为0的节点。或者可以使用x1,y1,n1;x2,y2,n2;...。例如0,a,0;a,b,5;a,c,1;b,b,0;c,c,0,代表标准手推车问题(末尾带有循环)。 测试用例 0,a,0;a,b,5;a,c,1;b,b,0;c,c,0 -> 1(从0到a,从a到c(杀死一个人),然后继续将手推车从c循环到c)。 0,0,1;0,a,5;a,a,0 -> 1(保持从0到0,永远超过1个人), 0,a,5;0,b,1;a,a,1;b,b,6 -> 6(0-> a-> a-> a-> a-> ...(请注意,转到b的贪婪解是不正确的)) 0,a,1;0,b,5;a,b,1;b,a,1 -> 3(0-> a-> b-> a-> b-> ...) 0,a,1;0,b,1;a,a,0;b,b,0 -> 1(请注意,功利主义者可能采取两种不同的选择,即两者都只会杀死一个人) 这是代码高尔夫球,所以最短的答案会成功!祝好运。 注意:不会出现恶性循环,并且禁止多轨漂移。同样,尽管我更喜欢从阿西莫夫的三个定律来考虑这个问题,彼得·泰勒在沙盒中指出,这个问题在数学上等同于找到权重最低的rho(使循环返回自身的路径) 。

11
取字符串的平方根
动机 在此挑战中,您的任务是将两个字符串相乘,这自然会引入一种取字符串平方根的方法。 它是如何工作的? 给定一个字符串(例如pub),您需要做的第一件事就是确定每个字符的ASCII代码: "pub" -> [112, 117, 98] 接下来,[0..94]通过减去32每个值将这些代码映射到范围: [112, 117, 98] -> [80, 85, 66] 现在,您需要为每个值找到其根模95(例如40*40 % 95 = 80,也可以选择55): [80, 85, 66] -> [40, 35, 16] 最后,您将其映射回范围[32..126]并将其转换回字符串: [40, 35, 16] -> [72, 67, 48] -> "HC0" 的确"HC0" ⊗ "HC0" = "pub",您可以从这里的其他挑战中找到解决方案,以此来验证。 那些熟悉模算术的人可能注意到平方根模数95并不总是存在,例如,没有根2。在这种情况下,未定义字符串的平方根,并且您的程序/函数可能会崩溃,不确定地循环等。 为了方便起见,以下是具有平方根的字符列表(第一个是空格): !$%&)+03489:>CDGLMQVW]`bjlpqu 规则 您将编写一个将字符串(或字符列表)作为参数并返回任何平方根(如果存在)的程序/函数 您可以假设输入始终具有平方根 …

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.