Questions tagged «code-golf»

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

13
盖革计数器
盖革计数器是一种用于检测辐射的设备。 我们将制作盖革计数器程序。 众所周知,当辐射撞击计算机程序时,它会随机删除1个字节。因此,Geiger计数器程序是一个本身不执行任何操作的程序,但是当删除任何字节时,修改后的程序将打印beep,以指示存在辐射。 答案将以字节计分,而字节数越少越好。答案必须至少为1个字节。 您的程序可以打印beep尾随换行符,也可以为空输出打印单个换行符,只要它始终如一。你的程序也可以使用不同的情况下beep,例如BEEP,bEEP或者Beep只要它这样做一致。

7
我们从开始的地方结束了!…
挑战: 输入: 您有两个输入: -仅包含可打印ASCII的字符串(不包括空格,制表符或换行符) -可打印的ASCII字符 输出: 第一行将包含字符串输入。i该字符的每个-modulo-3首次出现都将朝东南方向移动;每出现i-modulo-3秒事件将向南移动一次;并且每i-modulo-3出现的三分之一将沿西南方向移动。您将继续操作,直到字符将再次位于其初始起始位置(这意味着如有必要,它将从一侧缠绕到另一侧),然后再次使用字符串输入将最后一行打印到完成它。(请注意,所有测试用例都将在最多length(input)行之后(包括包含尾随输入的行)结束于其初始输入。但是,如下面的第一个测试用例所示,它可能更快,长度为14,但在之后9.) 这可能都非常模糊,因此这里有一个示例: 测试用例1: 字符串输入:"This_is_a_test" 字符输入:'s' 输出: This_is_a_test s s s ss s s s sss sss s s ss s s s s This_is_a_test 这是三个颜色路径相同的测试用例s: 第一条's'沿着绿色路线向东南方向行驶;第二条's'沿着黄线向南行驶;第三条's'沿着淡蓝色的路径向西南方向移动。(如果有第四个's',它将再次朝东南方向移动,这可以在下面的其他一些测试案例中看到。) 挑战规则: 输入将仅包含可打印的ASCII(不包括空格,制表符和换行符) I / O格式很灵活。可以是换行符分隔的字符串,字符矩阵等。您的呼叫。 给定字符可能不存在于字符串中,在这种情况下,允许您将输入字符串输出一次或两次(即,"test", 'a'可以将其中之一作为可能的输出:"test\ntest"/ "test")。 前导空格是强制性的;尾随空格是可选的。允许一个或多个前导/尾随换行符。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法和返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能,请为您的代码添加一个带有测试的链接。 另外,如有必要,请添加说明。 …

11
星号螺旋
给定大小S和步长的螺旋N,输出S*S具有N星号的“方形” 螺旋,该螺旋从外半径到内半径顺时针方向构建。 下面的测试用例(示例)。 输入: 4 3 输出: *** 输入: 4 6 输出: **** * * 输入: 4 11 输出: **** * * * **** 输入: 6 18 输出: ****** * * * * * * ****** 输入: 6 22 输出: ****** *** * * * * * * * ****** …

22
时间字谜
最初由@Tlink发布(并删除),这很可能是受此StackOverflow问题启发的。 由于很遗憾,它被删除了,因为通常来说这是一个很好的挑战,所以我认为我应该使用适当的格式和规则重新发布它。(我已经尝试联系@Tlink并获得他/她的发布许可,但是他不再回应,这就是为什么我决定现在将其发布。) 输入:六位数。 输出:以24小时格式(00:00:00到23:59:59)的第一个或最后一个有效时间。(您可以选择是输出第一个还是最后一个有效时间。) 例: 输入为时1,8,3,2,6,4,可以创建以下时间: 12:36:48 12:38:46 12:46:38 12:48:36 13:26:48 13:28:46 13:46:28 13:48:26 14:26:38 14:28:36 14:36:28 14:38:26 16:23:48 16:24:38 16:28:34 16:28:43 16:32:48 16:34:28 16:38:24 16:38:42 16:42:38 16:43:28 16:48:23 16:48:32 18:23:46 18:24:36 18:26:34 18:26:43 18:32:46 18:34:26 18:36:24 18:36:42 18:42:36 18:43:26 18:46:23 18:46:32 21:36:48 21:38:46 21:46:38 21:48:36 23:16:48 23:48:16 因此,我们将输出12:36:48或23:48:16在这种情况下分别输出第一个/最后一个。 挑战规则: …
29 code-golf  date 

9
是山区吗?
挑战 对于这一挑战,山区字符串是一个符合语法规则的字符串,M: x(Mx)*其中在每个产品中所有x都是相同的字符。缩进后,山峰字符串可能如下所示: A B C D C E F E C B A 如您所见,从侧面看它有点像一座山。 正式定义 任何单个字符a都是多山的。 如果S是多山字符串,并且a是字符,aSa则为多山,其中并置表示字符串连接。 如果aSa和aTa是多山的弦,那么aSaTa就是多山的弦。请注意,此规则意味着该模式适用于任意数量的重复。(即aSaTaUa,aSaTaUaVa,aSaTaUaVaWa...都是山区。) 例子 所有奇长回文都是山区,例如: t a c o c a t qwertytrasdfdgdsarewqjklkjq 是一个比较简单的例子: q w e r t y t r a s d f d g d s a r e w …

30
我是不是对你没够好?
背景: 当前的“ 完美数字”挑战相当有缺陷和复杂,因为它要求您以涉及数字因子的复杂格式输出。这只是挑战的决策问题转贴。 挑战 通过任何标准输入格式给定正整数,请区分是否为完美整数。 理想数是一个等于其所有适当除数之和的数字(其正除数小于其自身)。例如,是一个正数,因为它的除数是,总和为,而不是一个正数,因为它的除数(1,2,3,4,6)总和为16,不是12。6661,2,31,2,31,2,36661212121,2,3,4,61,2,3,4,61,2,3,4,6161616121212 测试用例: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 规则 如果存在内存或时间限制,您的程序不必完成较大的测试用例,但从理论上讲,如果有更多的内存/时间,它应该可以。 通过任何允许的输出格式,输出可以是两个不同且一致的值。如果尚不清楚什么代表完美/不完美,请确保在您的答案中指定。

19
大概几岁了?
编写一个简短的程序,该程序以正数表示年龄,并以英语输出该时间的估算值。 您的程序必须输出以下指标及其长度(以秒为单位)中经过的最不精确的时间: second = 1 minute = 60 hour = 60 * 60 day = 60 * 60 * 24 week = 60 * 60 * 24 * 7 month = 60 * 60 * 24 * 31 year = 60 * 60 * 24 * 365 例子 input : …
29 code-golf  date 

8
告诉我如何失败
作为计算机科学家,您可能都熟悉pop和push的基本列表操作。这些是修改元素列表的简单操作。但是,您听说过操作失败吗?(如倒装触发器)?很简单 给定数字n,反转列表的前n个元素。这是一个例子: >>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a.flop(4) [4, 3, 2, 1, 5, 6, 7, 8, 9, 10] 翻牌操作很酷的事情是,您可以使用它对列表执行一些很酷的事情,例如对它进行排序。我们将对拖鞋做类似的事情: 给定一个整数列表,“邻居”。换句话说,对它进行排序,以便每个重复的元素连续出现。 这可以用拖鞋完成!例如,采用以下列表: >>> a = [3, 2, 1, 4, 3, 3, 2] >>> a.flop(4) [4, 1, 2, 3, 3, 3, 2] >>> …

4
实现真正的字符串添加
许多语言允许使用字符串“添加” +。但这确实是串联的,一个真正的加法将遵循组公理: 它是封闭的(任何两个字符串的加总始终是一个字符串) 它是关联的((a + b)+ c = a +(b + c)) 有一个恒等式(∃e:a + e = a) 每个元素都有一个逆数(∀a:∃b:a + b = e) (串联违反了第四组公理) 因此,我要执行的任务是实现真正的字符串加法,即该函数需要两个表示字符串的字节序列,然后返回第三个字节,以便您的函数满足字节序列上的所有组公理。 它必须适用于代表字符串的所有字节序列,包括具有空字节的字符串。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。

27
Code Golf:您自己的水平宠物ASCII蛇
受此挑战的启发非常深远。Code Golf:您自己的宠物ASCII蛇 -我认为将其水平放置会增加额外的复杂性。 水平蛇示例: 0 0 0 0 0 000 00 0 00 000 0 0 000 0 0 0 00 0 000 规则是: 正好打印了5行字符 每行正好是30个字符,由空格和您选择用来绘制蛇的字符的组合组成 你的蛇从第3行开始 必须从当前行中随机选择下一条用于绘制蛇的行,即从上方一行(如果您尚未位于第1行)或从下方一行(如果您尚未位于第5行)。 这些选择必须同等权重。因此,如果您在1号线,则有50%的机会留在1号线,而50%的机会移至2号线。如果在2号线,则有33%的机会移至1号线,留在2号线的机会为33%或移至3号线的机会为33% 你的蛇并不需要访问每一行。

21
可堆叠序列
您一次从一副牌中发出标记为0到9的纸牌,形成从0开始并以1递增的堆叠。 分配0时,将其放在桌子上以开始新的堆栈。 当您处理其他任何卡时,您会将其堆叠在一张价值稍低的卡上,并将其覆盖。如果没有这样的卡,则卡座无法堆叠。 给定一个甲板,确定在按给定顺序处理时是否可以堆叠。等效地,给定一个数字列表,决定是否可以将其划分为每种形式的不相交的子序列0,1,..,k 例 走上甲板0012312425。前两张牌是0,因此他们在桌上: Stacks: 00 Deck: 12312425 接下来,我们处理1,继续在上0,无论哪个: 1 Stacks: 00 Deck: 2312425 然后,我们2在刚放置1的3顶部和顶部放置一个。 3 2 1 Stacks: 00 Deck: 12425 接着,对1,2并置于所述第一堆叠的顶上和4顶上的第二个。 4 3 22 11 Stacks: 00 Deck: 25 现在,我们需要放置一个2,但1两个堆栈都没有顶部。因此,此甲板不可堆叠。 输入:一个非空的数字列表0-9,或一个字符串。您不能假设输入中始终为0。 输出:两个不同的一致值之一,一个用于可堆叠序列,一个用于不可堆叠序列 测试用例: 可堆叠: 0 01 01234 00011122234567890 012031 0120304511627328390 不可堆叠: 1 021 0001111 0012312425 012301210 …

11
建立一个半锯齿形
您将得到一个正整数N作为输入。您的任务是构建一个N各边长为的半锯齿形N。由于很难清楚地描述任务,因此以下是一些示例: N = 1: Ø N = 2: Ø 面向对象 N = 3: 面向对象 面向对象 OOO N = 4: OOOOO 面向对象 面向对象 OOOO N = 5: O OOO OOO OOO O N = 6: OO OOO OOO OOO OOO 喔喔喔喔 N = 7: 喔喔喔喔 OOOO OOOO OOOO OOOO OOOO OOOOOOOOOOOOOO …

20
754号至汉明
您将得到一个介于(−2 52)至(2 52)之间的整数作为输入。如所公知的,在此范围内的整数可以准确地为双精度浮点值来表示。k-45035996273704964503599627370496 你应该输出的汉明权重的编码的(那些数)k在 binary64格式。这将1位用于符号,将11位用于指数(使用偏移量编码),将52位用于尾数。有关详细信息,请参见上面的链接。 作为一个例子,数22被表示为 0 10000000011 0110000000000000000000000000000000000000000000000000 由于存在5,因此输出为5。 请注意,字节序不会影响结果,因此您可以安全地使用计算机的双精度值的实际内部表示形式来计算输出。 附加规则 允许使用程序或功能。 可以使用任何编程语言。 禁止出现标准漏洞 输入的数字将为十进制。除此之外,输入/输出方式和格式仍然像往常一样灵活。 以字节为单位的最短代码获胜。 测试用例 22 -> 5 714 -> 6 0 -> 0 1 -> 10 4503599627370496 -> 5 4503599627370495 -> 55 1024 -> 3 -1024 -> 4 -4096 -> 5 1000000000 -> 16 -12345678 -> …

30
随机化直到0
挑战 沙盒发布 给定一个正整数(K)输出一个均匀随机整数(Y)之间[0, K)。 如果Y > 0假设K = Y并重复该过程,直到Y = 0。 规则 输入必须首先打印 您想要的输出格式 Your program must finish. 0 must be the final output, Optionally an empty line instead 0
29 code-golf  random 

30
从整数中清除最高有效位
输入值 输入是单个正整数 n 输出量 输出n的最高有效位设置为0。 测试用例 1 -> 0 2 -> 0 10 -> 2 16 -> 0 100 -> 36 267 -> 11 350 -> 94 500 -> 244 例如:350in二进制为101011110。设置其最高有效位(即最左边的1位)以0使其变成001011110等于十进制整数94的输出。这是OEIS A053645。

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.