Questions tagged «code-golf»

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

10
警报优化
我的闹钟 我是美国人,我的(数字)闹钟也是如此。要设置警报,它从先前的时间开始。按下小时按钮将其向上移动一小时,而按下分钟按钮将其向上移动一分钟。同时按下两个按钮会将其重置为午夜(上午12:00),并计为两次按下按钮。 当小时数超过上限(12)时,它将重置为1并切换AM / PM指示灯。当分钟数超过上限(59)时,它们将重置为0,而不会影响小时数。 任务 给定开始时间和目标时间,您的任务是输出将我的闹钟设置为目标时间所需的最佳按钮按下次数。 您可以采用最适合您的格式输入。对于这两个输入,程序唯一需要的数据是小时和分钟。举例来说,这意味着您可能会以大纪元以来的毫秒数为单位来提取数据,并提取小时和分钟,但是您可能无法在年,月,秒等中进行任何编码。请注意,尽管您可能会使用“军事时间”(或世界上大部分时间的常规时间),但这不会改变我的时钟的工作方式。 例子 1:15 pm -> 2:30 am 您可以同时按下两个按钮以将其重置为12:00 am,然后增加至2:30 am,即2+2+30 = 34按下按钮。您也可以增加到凌晨2:30,这就是13+15 = 28按下按钮。因此,您的输出为28。 3:58 am -> 4:02 am 您可以重置和递增,这将是2+4+2 = 8按下按钮。您也可以增加1+4 = 5按钮的数量。因此,您的输出为5。 10:55 pm -> 1:00 am 您可以重置和递增,这将是2+1 = 3按下按钮。您也可以增加3+5=8按钮的数量。因此,您的输出为3。 1:00 am -> 1:59 pm 您可以重设和递增,但不仅仅是递增,还要多按三下。因此,您的输出为12+59 = 71。 测试用例 Current Target …

6
六角邻接
上图显示了六边形的六边形网格。网格中的每个单元都分配了一个索引,从中心开始,如图所示逆时针旋转。请注意,网格将无限期继续-上面的图片只是第一部分。下一个六边形将与60和37相邻。 您的任务是确定此网格上的两个给定单元格是否相邻。 编写一个程序或函数,给定两个单元格索引,如果两个单元格相邻,则打印/返回真实值;如果不相邻,则打印/返回真实值。 如果不受实际原因的限制,则您的代码理论上应适用于任何大小的输入。 真实的测试案例: 0, 1 7, 18 8, 22 24, 45 40, 64 64, 65 虚假测试用例: 6, 57 29, 90 21, 38 38, 60 40, 63 41, 39 40, 40 这是代码高尔夫球,因此最短的答案以字节为单位。鼓励即使是非深奥的语言也要进行解释。

23
基本排序,带有令人讨厌的错误
您的输入是一个包含5-255个正整数的列表/序列/向量/数组,不一定是唯一的。您可以假设最适合的输入格式是什么,并且每个整数(以及整数的数量)都是从5-255范围内随机选择的。 目标是以相同(或等效)格式输出相同列表,但按升序(不降序)排序。学习语言的常见早期练习。提交的内容包括: 正确起作用并达到目标的答案;和 第二个答案包含一个令人讨厌的错误。在1%到10%的时间之间,输出需要是一个格式正确且包含正确元素的列表,但是顺序错误(除了正确排序以外的任何顺序)。其余时间,程序必须正确运行并达到目标。 这两个答案必须具有Levenshtein距离 1;也就是说,我们可以通过删除一个字节,添加一个字节或更改一个字节来获得另一个。 在代码高尔夫球中照常计分(基于两个答案中的较短者),并禁止通常的漏洞。 如果烦人的错误是与输入无关的,则10%的奖金(降低得分),即再次使用相同的输入不会重现该错误(除了1%到10%的时间)。

25
最小零基数
给定一个正整数n,输出最小的底数b >= 2,其中n底数b中没有前导零的表示不包含0。您可能会假设b <= 256所有输入都是这样。 测试用例 1 -> 2 (1) 2 -> 3 (2) 3 -> 2 (11) 4 -> 3 (11) 5 -> 3 (12) 6 -> 4 (12) 7 -> 2 (111) 10 -> 4 (22) 17 -> 3 (122) 20 -> 6 (32) 50 -> 3 (1212) …

12
你好,世界!带有半普通字符
你们中的一些人可能知道,将一种语言融入Dennis的精彩在线尝试中!,您好,世界!程序是必需的。最近,丹尼斯提出了一种从网站上加载这些程序的方法。截至2017年7月27日,这是这些程序中使用的字符的JSON pastebin(按频率)。 这些角色中的一些需要爱,因此您的挑战是输出Hello,World!(最好是与此过程有关的语言),仅使用以下指定的字符。这些字符是在10和99(含)时间之间使用的所有字符,以及两个最常见的字符0和,因为我感觉很好。 0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_ 字符的使用应基于其在常规程序中的外观,而不是基于其代码点或字节值。 您必须使用该集合中的至少一个字符,因此长度为0的程序无效。 这是代码高尔夫球,因此最短答案以字节为单位。 JSFiddle检查您的答案是否有效

30
寻找独特的双胞胎
您将获得两个非负整数A和B的数组/列表/向量。您的任务是输出出现在A和B中的最高整数N,并且在A和B中都唯一。 您可以假设至少有一个这样的数字。 允许使用任何合理的输入和输出方法/格式。 这些漏洞是禁止的。 这是代码源代码,因此每种编程语言中最短的代码都会胜出! 测试用例: A,B->输出 [6],[1、6]-> 6 [1、2、3、4],[4、5、6、7]-> 4 [0,73,38,29],[38,29,73,0]-> 73 [1、3、4、6、6、9、9],[8、7、6、3、4、3]-> 4 [2,2,2,6,3,5,8,8],[8,7,5,8]-> 5 [12,19,18,289,19,17],[12,19,18,17,17,289]-> 289 [17,29,39,29,29,39,18],[19,19,18,20,17,18]-> 17 [17,29,39,29,29,39,18,18],[19,19,18,20,17,18]-> 17

30
方形金字塔数
A000330-OEIS 任务 你的任务很简单,生成一个序列,鉴于指数i,在该位置的值是平方之和从0高达i哪里i >= 0。 例: Input: 0 Output: 0 (0^2) Input: 4 Output: 30 (0^2 + 1^2 + 2^2 + 3^2 + 4^2) Input: 5 Output: 55 (0^2 + 1^2 + 2^2 + 3^2 + 4^2 + 5^2) 规格: 您可能不输入任何内容并无限期地输出序列; 您可以输入N并输出Nth序列的元素; 您可以输入N并输出N序列的前几个元素。

14
在TeX / LaTeX中打高尔夫球的技巧
人们在TeX / LaTeX中打高尔夫球有哪些技巧?请为每个答案发布一个提示,每个提示至少在某种程度上特定于TeX / LaTeX。 上下文:我注意到了这个答案,而且TeX / LaTeX没有提示问题,因此我正在创建这个。与TikZ中打高尔夫球的较窄问题提示有些重叠(因为TikZ是TeX / LaTeX之上的特定宏程序包):该问题的答案可能也适用于此,但并非相反。
28 code-golf  tips 

13
是乌龟素吗?
众所周知,乌龟一直沉没下来。但是,它是否也一路下降? 如果数字满足以下条件,则将其视为“乌龟”: 1) It is prime. 2) It is possible to remove a single digit leaving a prime number. 3) Step 2 can be repeated until left with a single digit prime. 例如,239是“龟贷”,因为它可以减少到23然后或者2或3,这两者都是质数。也可以减少到29那时2。151不是乌龟素数,因为它减少为15(不是素数),51(不是素数)或11。11是素数,但只能减少到1,不是。 给定一个正整数,确定它是否是“乌龟素数”。您的输出可以是任何形式,只要它为任何真实或错误值提供相同的输出即可。 测试用例: input -> output 1 -> false 2 -> true 17 -> true 19 -> false …
28 code-golf  primes 

9
火灾传播模拟器
假设我们有一个像这样的矩阵: 11111 12221 12321 12221 11111 该矩阵代表地形,每个像元代表地形的一部分。每个单元格中的数字表示根据地形的可燃性需要完全燃烧地形的时间(以分钟为单位,如果需要测量单位的话)。如果在任意给定位置(单元)开始起火,则该单元需要先完全燃烧,然后再传播到相邻单元(仅水平和垂直,而不是对角线)。因此,如果在中心位置起火,则火灾需要: 11111 11111 11111 11011 10001 00000 12221 3 m. 12221 2 m. 12021 1 m. 11011 1 m. 00000 1 m. 00000 12321 -----> 12021 -----> 10001 -----> 00000 -----> 00000 -----> 00000 12221 12221 12021 11011 00000 00000 11111 11111 11111 11011 …

30
'abc'和'cba'
您的任务很简单,编写一个代码段,当以一种语言执行时仅输出字符串,'abc'而以另一种语言执行时仅输出字符串'cba'。该程序不应该输入。 这是一个代码高尔夫挑战。

30
三角数!
我们习惯于“平方” n来表示计算n 2。我们也习惯于将“立方” n表示为n 3。话虽这么说,为什么我们也不能将数字三角化? 如何三角化一个数字? 首先,让我们选择一个数字53716。 将其放置在平行四边形上,其边长等于该数字的位数,并且其两侧斜对角放置,如下所示。 53716 53716 53716 53716 53716 现在,我们要Δ,对吗?为此,裁剪不适合直角三角形的边: 5 53 537 5371 53716 取每一行的总和,对于本示例,得出[5, 8, 15, 16, 22]: 5-> 5 53-> 8 537-> 15 5371-> 16 53716-> 22 对列表求和[5, 8, 15, 16, 22],得到66。这是这个数字的三角形! 规格与规则 输入将是一个非负整数n(n≥0,n∈Z)。 您可以采用任何允许的方式输入并提供输出。 输入可以格式化为整数,整数的字符串表示形式或数字列表。 不允许出现默认漏洞。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 更多测试案例 输入->输出 0-> 0 1-> …

12
Terra Mystica:单车动力
棋盘游戏Terra Mystica具有一些非常有趣的机制,其中一种主要资源就是力量。每个玩家不用从银行获得和消耗权力单位,而是以恰好12个权力单位开始游戏,这些权力分配在三个“碗”中,分别标记为I,II和III。获得和消费能力然后简单地在这些碗之间转移权力: 要消耗一个单位的功率,请将其从III碗移到I碗(前提是您在III碗中有一个单位)。 当获得一个单位的功率时,如果碗I中有一个单位,请将其移至碗II中。如果碗I中没有单元,但碗II中有单元,请将其移至碗III中。如果所有装置都已经放在III号碗中,则什么也不会发生。 当您一次获得或花费多个单位时,将一次处理一个单位。 这是一个例子。假设玩家开始时具有以下功率分布(按顺序分配I | II | III): 5 | 7 | 0 如果他们多次获得和花费力量,他们的力量将发生以下变化: 5 | 7 | 0 Gain 3 ==> 2 | 10 | 0 Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II, then the remaining 4 from II …

28
按元素的字符串乘法
灵感来自这个挑战(感谢@cairdcoinheringaahing为标题!),你的任务就是用下面的规则来取两个打印的ASCII字符串,并乘其逐元素。 它是如何工作的? 给定两个字符串(例如split和isbn),您将首先截断较长的字符串,使它们具有相等的长度,然后确定其ASCII码: split -> spli -> [115, 112, 108, 105] isbn -> isbn -> [105, 115, 98, 110] 下一步将是[0..94]通过减去32每个代码将它们映射到范围: [115, 112, 108, 105] -> [83, 80, 76, 73] [105, 115, 98, 110] -> [73, 83, 66, 78] 现在,您将它们乘以逐元素的模95(以保持在可打印范围内): [83, 80, 76, 73] ⊗ [73, 83, 66, 78] -> [74, …

30
加长信纸
给定一个非空的小写ASCII字母a-z字符串,请输出该字符串,并且该字母的每个连续“游程”都要加长该字母的一个副本。 例如,dddogg(3 d “S,1 o,2 g “S)打开到ddddooggg(4 d “S,2 o “S,3 g “S)。 这是代码高尔夫球:以字节为单位的最短答案将获胜。 测试用例 aabbcccc-> aaabbbccccc 门铃-> ddooorrbbeelll uuuuuuuuuuz-> uuuuuuuuuuzz q-> qq xyxyxy-> xxyyxxyyxxyy xxxyyy-> xxxxyyyy
28 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.