Questions tagged «code-golf»

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

30
日期乘法挑战
(灵感来自上周的FiveRhirtyEight.com.Sandbox post上的Riddler。) 给定2001年至2099年之间的一年,请计算并返回该日历年中的天数,其中mm * dd = yy(yy为2位数的年份)。 例如,2018年有5个: 1月18日(1 * 18 = 18) 2月9日(2 * 9 = 18) 3月6日(3 * 6 = 18) 6月3日(6 * 3 = 18) 9月2日(9 * 2 = 18) 输入可以是2位数或4位数的数字年份。 输出应为整数。可选的尾随空格或回车符都可以。 完整的输入/输出列表: Input = Output 2001 = 1 2021 = 3 2041 = 0 2061 = …
19 code-golf  date 

17
查找多项式的积分根
挑战 面临的挑战是编写一个程序,该程序将任何n次多项式方程式的系数作为输入,并返回方程式成立的x 的积分值。这些系数将按照功率减小或增大的顺序作为输入提供。您可以假定所有系数都是整数。 输入输出 输入将是功率递减顺序的等式系数。方程的度数(即x的最大乘方)始终比输入中元素总数的总和小1。 例如: [1,2,3,4,5] -> represents x^4 + 2x^3 + 3x^2 + 4x + 5 = 0 (degree = 4, as there are 5 elements) [4,0,0,3] -> represents 4x^3 + 3 = 0 (degree = 3, as there are 3+1 = 4 elements) 您的输出应仅是满足给定方程的x 的不同积分值。所有输入系数都是整数,并且输入多项式将不是零多项式。如果给定方程式无解,则输出不确定。 如果方程式具有重复的根,则仅显示该特定根一次。您可以按任何顺序输出值。另外,假设输入将至少包含2个数字。 例子 …

21
重复字节计数器
您的任务是编写一个字节数为L的非空程序/函数,该程序/函数重复M次后,将检查给定的正整数N是否等于L×M。 理论上,您应该支持任意数量的重复(M的任意正整数值),但是如果由于语言限制,它不能超过某个阈值就可以了。严格禁止阅读程序的源代码或访问有关它的信息。 为了提供输出,您应该为一个状态(真或假)选择一个一致的值,并为另一种状态使用其他任何(不一定一致)的可能输出(Discussion)。 您的答案将由您初始程序的长度L(以字节为单位)进行评分,字节越少越好。 例 假设您的(初始)程序为ABCDE。然后: ABCDE(1次重复)应检查输入是否等于5。 ABCDEABCDE(2次重复)应检查输入是否等于10。 ABCDEABCDEABCDE(3次重复)应检查输入是否等于15。等等... 该示例代码的分数为5,因为初始源的长度为5个字节。

14
它是洗牌吗?
昨天我问这个约洗牌洗牌的问题。似乎昨天的问题有点太难了,所以这个问题是相关但容易得多的任务。 今天,您被要求确定排列是否实际上是浅滩混洗。我们对浅滩混洗的定义是根据我们上一个问题改编的: 洗牌的第一部分是鸿沟。在分隔分区中,一副纸牌一分为二。这两个小节必须是连续的,互斥的和详尽的。在现实世界中,要使您的分区尽可能地接近,但是在此挑战中,这不是要考虑的问题,所有退化的分区(一个分区为空)都是同等考虑的。 分区后,将卡拼接在一起,以使卡在它们所属的分区内保持其相对顺序。例如,如果卡片A在卡组中的卡片B之前,并且卡片A和B在同一分区中,则在最终结果中,卡片A必须在卡片B之前,即使它们之间的卡片数量增加了。如果A和B在不同的分区中,则它们在最终结果中可以采用任何顺序,而不管它们的开始顺序如何。 然后,可以将每个浅滩混洗视为原始纸牌的排列。例如排列 1,2,3 -> 1,3,2 是浅滩洗牌。如果你像这样分割甲板 1, 2 | 3 我们看到其中的每张卡1,3,2与其分区中的每张其他卡具有相同的相对顺序。 2仍在1。 另一方面,以下排列不是浅滩混洗。 1,2,3 -> 3,2,1 我们可以看到这一点,因为对于所有两个(非平凡的)分区 1, 2 | 3 1 | 2, 3 有一对卡不保持其相对顺序。在第一个分区1,并2改变他们的排序,而在第二个分区2,并3改变它们的顺序。 任务 通过任何合理的方法给定排列,确定它是否代表有效的浅滩混洗。您应该输出两个不同的常数值,一个用于“是,这是浅滩混洗”,另一个用于“不,这不是浅滩混洗”。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 1,3,2 -> True 3,2,1 -> False 3,1,2,4 -> True 2,3,4,1 -> True 4,3,2,1 -> False 1,2,3,4,5 -> …

1
泡沫浴字母
如果您的房子里有个小孩,您可能会碰到泡沫浴字母。可以将它们弄湿并粘在平整的表面上,例如瓷砖和浴室的侧面,以发出文字和信息。 词和信息的范围有一定的限制,如果你只有一组不过,因为你只能得到36个字符:大写字母AZ和数字0-9: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。但是,您可能会狡猾并滥用某些字母和数字来形成其他字母的额外副本: 3: E 1: I 7: L (when rotated) M: W (when rotated) 0: O 2: S (when flipped) 5: S W: M (when rotated) 2: Z 5: Z (when flipped) O: 0 6: 9 (when rotated) L: 7 (when rotated) 9: 6 (when rotated) 请注意,它们并非都是双向的,因为阅读数字作为单词的一部分比阅读字母作为数字的一部分更容易。 每组还具有多种颜色,其中每个字母均按顺序进行着色。例如,如果您的套装有红色,黄色和蓝色3种颜色,则您的套装将像: 红色: …

7
嗯,是hai句吗?
因此,您想创建一个句,但是不确定它是否遵循句的音节规则。 我不会像平常那样烦恼编写适当的Blub,因此您必须这样做。让我们陷入困境。 在野外寻找a句 为了这个挑战,我们将检查给定的诗是否满足以下条件: 三行。 第一行有5个音节。 第二行有7个音节。 第三行有5个音节。 每行由一个或多个单词组成,并用空格隔开。这些单词不一定是有效的英语单词。 每个单词被分成多个音节,然后对这些音节进行计数以获得行的总音节数。 一个音节有2到3个部分:开头,结尾,可能还有中间。每个部分或者是一个组的consonsants(也称为一个辅音簇,如s,sk或spl),或一组元音(例如i,ea或oui)。 如果开头是一组辅音,则中间将是一组元音,而结尾将是一组辅音。如果开始是一组元音,则结束将是一组辅音,而没有中间。 例如,该单词example由三个音节ex,am和组成ple。ple没有结尾,因为它被单词的结尾部分缩短了。 作为另一个示例,该单词syllable还具有三个音节syll,abl和e,它们也没有结尾。 对于最后一个例子,该单词word有一个音节,word以一组辅音结尾。 挑战 给定一个字符串,一个字符串列表,一个列表列表或任何其他代表至少一行诗的合理格式,请确定其是否满足上述概述的hai句的标准,并返回结果。 您可以采用以下任何一种格式返回结果: 如果这首诗是句而虚假的话,则为真值。 如果这首诗是句,则为假值,否则为真值。 如果诗歌是po句,则来自提交中指定的有限范围内的值,并且提交中也指定来自相互排斥的有限范围内的值。 您可能还假定这首诗不包含任何非字母字符,但是您可能不会假定这首诗完全是大写或小写。 为了这个挑战的目的,Y是一个元音。 测试用例 特鲁西 This is a haiku Yes it truly is one See what I did man I am so tired of writing this already when can I …

23
数组的一次交换
灵感来自Stack Overflow上的一个问题。 挑战 给定一个整数n>1,输出可以通过恰好交换阵列中的两个条目而获得的所有阵列[1, 2, ..., n]。 阵列可以以任何顺序生产。 您可以始终使用[0, 1, ..., n-1](从0开始)代替[1, 2, ..., n](从1开始)。 附加规则 输入和输出像往常一样灵活。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 输入2给出输出(假设从1开始) 2 1 输入3给出输出(请注意,三个数组可以按任意顺序排列) 1 3 2 2 1 3 3 2 1 输入4给出输出 1 2 4 3 1 3 2 4 1 4 3 2 2 1 3 4 …

25
重叠切片的按列求和
任务 给定的整数的列表大号和另一个整数小号中,目标是计算所有的列方向总和小号 -length(可能重叠的)的切片大号,而关于相对于它们的位置大号(见下文)。 定义 该小号 -length (重叠)切片列表的大号都的连续子序列(不包裹)大号是长度的小号。 为了使切片s相对于L 的位置相关,您可以想象构建一个“阶梯”,其中每个切片s i与i的位置都从开始偏移。 眼镜 s是一个大于1的整数,并且严格小于L的长度。 L将始终包含至少3个元素。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 示例和测试用例 这是一个工作示例: [1, 2, 3, 4, 5, 6, 7, 8, 9], 3 [1, 2, 3] [2, 3, 4] [3, 4, 5] [4, 5, 6] [5, 6, 7] [6, 7, 8] [7, 8, 9] -------------------------------- (+) | …

4
清楚地加上括号的APL列车
在APL中,您可以编写默认的函数,称为trains。他们的工作方式与这一挑战无关。以下是将它们⍴作为函数进行分组的不同方法: ⍴ -> ⍴ ⍴⍴ -> ⍴⍴ ⍴⍴⍴ -> ⍴⍴⍴ ⍴⍴⍴⍴ -> ⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴)) ... 顺序保持不变。程序是,只要严格存在3个以上的功能,则将后3个功能分组为一个功能。如果遇到嵌套火车,我们先将其括起来,然后再继续。这是适用于的过程⍴⍴⍴⍴⍴⍴: Step 0: ⍴⍴⍴⍴⍴⍴ There are strictly more than 3 functions, repeat. Step 1: ⍴⍴⍴(⍴⍴⍴) There are strictly more than 3 functions, repeat. Step 2: ⍴(⍴⍴(⍴⍴⍴)) There are 3 or …

2
有理数的按位XOR
介绍 0和1之间的每个有理数都可以表示为最终的周期性位序列。例如,11/40的二进制表示为 0.010 0011 0011 0011 ... 0011无限期重复的部分。以下是找到此表示形式的一种方法。从r = 11/40开始,然后重复将其加倍并取小数部分,当它超过1时进行记录。当r的值重复时,您就知道已经进入循环。 1. r = 11/40 2. 2*r = 11/20 < 1 -> next bit is 0, r = 11/20 3. 2*r = 11/10 >= 1 -> next bit is 1, r = 2*r - 1 = 1/10 4. 2*r = 1/5 …

9
使用Riemann和求近似定积分
左右黎曼和和是定积分的近似值。当然,在数学中我们需要非常精确,因此我们的目标是使用许多接近无穷大的细分来计算它们,但对于本挑战而言,并不是必需的。相反,您应该尝试编写最短的程序,以任何编程语言通过任何默认方法获取输入并提供输出,该语言可以执行以下操作: 任务 给定两个有理数一种一种a和bbb(定积分的极限),一个正整数ññn,代表左/右的布尔ķķk和一个黑盒函数 FFf,计算∫的左或右黎曼和(取决于ķķk)b a f (x )d x,使用n个相等的细分。∫b一种F(x )d x∫一种bF(X)dX\int_a^b f(x)\mathrm{d}xññn I / O规格 一种一种a和bbb可以是有理数/浮点数或分数。 ķķk可以由任意两个不同且一致的值表示,但请记住,不允许您将完整或部分函数用作输入。 FFf是黑盒功能。引用上面链接的meta答案,可能无法访问黑盒功能的内容(即代码),您只能调用它们(如果适用,则传递参数)并观察其输出。如果需要,请提供有关您的语言使用的语法的必要信息,以便我们测试您的提交。 作为输出,您必须提供一个有理数/浮点数/分数,代表您想要的黎曼和。如过去所讨论的,只要四舍五入到最接近的1/1000的倍数(例如1.4529999,可以代替1.453),您的输出至少可以精确到小数点后三位,就可以忽略浮点不精确度。 数学规格 FFf保证在一种一种a和bbb之间是连续的(没有跳跃,没有孔,没有垂直渐近线)。 您必须处理三种可能的情况:a = b一种=ba = b(结果应为000或等效值),a &lt; b一种&lt;ba < b或a &gt; b一种&gt;ba > b。 如果b &lt; ab&lt;一种b < a,则积分会更改其符号。此外,在这种情况下,整体的正义感是朝着一种一种a。 图表下方的区域为负,图表上方的区域为正。 示例/测试用例 分辨率不是最佳的,因为我不得不将它们缩小一点,但是它们仍然可读。 F(X )= 2 X + 1 ,a = …

16
镜像数字时钟
许多数字时钟使用简化的数字显示时间,这些数字仅由七个打开或关闭的不同指示灯组成: 水平镜像时,数字018不变,因为它们是对称的。此外,数字2和5交换,2成为5,反之亦然。镜像后,所有其他数字均无效。 因此,给定24小时数字时钟,会有许多时钟读数,因此数字显示器的镜像图像也是有效的时钟读数。您的任务是输出所有此类时钟读数以及镜像读数。 例如,22:21变为15:55,00:15变为21:00。另一方面,12:34或16:27在镜像后不再有效(数字34679变为无效),也不是22:22或18:21,因为一天中只有24小时,每小时只有60分钟,所以不会显示55:55或12:81。 任务 编写一个程序或函数,不使用任何输入,并按升序输出所有有效对,如下所示: 00:00 - 00:00 00:01 - 10:00 00:05 - 20:00 00:10 - 01:00 00:11 - 11:00 00:15 - 21:00 00:20 - 05:00 00:21 - 15:00 00:50 - 02:00 00:51 - 12:00 00:55 - 22:00 01:00 - 00:10 01:01 - 10:10 01:05 - 20:10 01:10 - …

3
写有理数作为质数的因数比
注意:此挑战已发布在沙盒上。 介绍 这项挑战的灵感来自2009年Putnam B1,这是本科数学竞赛中的一个问题。问题如下: 证明每个正有理数都可以写成素数(不一定是素数)的阶乘乘积的商。例如, 挑战 您的挑战是采用一对相对质数为正的整数,它们代表正有理数(或仅是有理数本身)的分子和分母作为输入,并输出两个质数的列表(或数组等),以便输入的有理数等于第一个列表中素数阶乘的乘积与第二个列表中素数阶乘的乘积之比。 笔记 第一个列表和第二个列表中可能没有任何素数;但是,素数在任意一个列表中可能会出现多次。 可以假定每个输入(非严格地)在1到65535之间。但是,不能假设您需要输出的数字的阶乘将在此范围内。 输入和输出示例 以下是合法输入和输出的示例。 input=&gt;output 10,9 =&gt; [2,5],[3,3,3] 2,1 =&gt; [2],[] 3,1 =&gt; [3],[2] 1,5 =&gt; [2,3,2],[5] (elements of a list may be in any order) 3,2 =&gt; [3],[2,2] 6,1 =&gt; [3],[] 输入(2,2),(0,3),(3,0),(3,6)和(1,65536)是非法输入(即,您的程序不需要对它们进行任何特定操作)。以下是一些非法输出的示例: 1,2 =&gt; [2],[2,2] (2 is in both returned lists) …

10
我需要破坏世界吗?
行星的引力束缚能是指将行星的每一小块分开,以使每一块都不会绕另一颗轨道运行或碰撞所需的能量。对于一个统一的领域,Wikipedia给出以下公式: Ë= 3 G M25 RË=3G中号25[RE = \frac{3GM^2}{5R} 其中G为重力常数(6.672e-11 m 3 •kg -1 •s -2),M为质量,R为半径。 我可能仅以焦耳(kg•m 2 •s -2)计算该挑战,但是……那将很无聊。此外,并非所有人都了解焦耳。 因此,让我们将其转换为以下单位: TNT千吨(4.184万亿焦耳,简写kilotons) 广岛核武器(62.76万亿焦耳,简写nukes) Hostess™Twinkies(560,000焦耳,速记twinkies) 千瓦时(简写为360万焦耳kWh) 千克的质量能(1千克质量能= 299,792,458 2焦耳,简写kg) 因此,输入以下输入: 千克质量 半径(米) 代表要使用的单位的六个不同输入之一 并以指定单位输出结合能。将速记单元追加到输出的末尾。 规则 焦耳的简写是J。 只要不分隔速记单位或数字,就可以使用任意空格。 无论您使用哪种语言,都可以使用科学计数法。 您只需要4个有效数字。强烈建议使用浮点数。 等等等等最短的答案以字节为单位。 测试用例 与此电子表格一起生成。 Mass (kg) Radius (m) J kilotons nukes twinkies kWh kg …

7
二元展开式的不同非空子序列数
子序列是您可以通过删除任意数量的字符从另一个序列获得的任何序列。的不同的非空的子序列100是0,1,00,10,100。的不同的非空的子序列1010是0,1,00,01,10,11,010,100,101,110,1010。 写一个程序或函数给定一个正整数Ñ返回的二进制展开的不同的非空的子序列的数目Ñ。 例子:因为4是100二进制,所以我们看到上面有五个不同的非空子序列,所以f(4) = 5。从n = 1开始,序列开始: 1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12 但是,您的程序必须在任何现代机器上都能在n &lt;2 50秒内工作。一些大的例子: f(1099511627775) = 40 f(1099511627776) = 81 f(911188917558917) = 728765543 f(109260951837875) = 447464738 f(43765644099) = 5941674

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.