Questions tagged «code-golf»

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

5
滴答奎因炸弹!
挑战: 创建一个采用整数输入的程序或函数,该程序或函数输出一个新的程序/函数,如下所示。 输入: 整数n:时间炸弹爆炸前的时间(以秒为单位)。 输出: 以秒n为单位的时间输入的原始程序将输出执行以下操作的新程序/功能: 已经n过去了秒自上次程序运行?打印BOOM! 否则:打印一个程序/函数,该程序/函数在自身运行时将计时器重置为n秒(并且与第一个输出的程序/函数相同)。 注意:它与第一个输出的程序/函数不完全相同(至少在大多数语言中是这样),因为开始时间已更改(请参见下面的说明示例)。 伪代码示例: 假设原始程序是ABC,输入是60秒: ABC&60输出DEF(60)。 如果DEF(60)在60秒内运行,它将输出DEF_G(60),其作用与DEF(60),但是具有新的开始时间。 如果DEF(60)在60秒后运行,它将输出BOOM!。 澄清示例“开始时间”的含义: 输入60秒的基本程序在处运行12:00:00。它以开始时间输出第一个输出程序12:00:00。 开始时间为的第一个输出程序在12:00:00处运行12:00:45。它以开始时间输出第二个输出程序12:00:45。 开始时间为的第三个输出程序在12:00:45处运行12:01:25。它输出开始时间为的第四输出程序12:01:25。 开始时间为的第四个输出程序在12:01:25处运行12:05:00。它将输出BOOM!。 请注意,第一个输出将BOOM!在之后输出12:01:00,但是输出程序已进行,因此即使12:01:25在第3步,它仍将输出下一个程序,而不是输出BOOM!(因为输出程序的开始时间超过了第一个输出程序) 。 挑战规则: 默认的规则是规则。 至少n应该过去几秒钟。因此,如果输入为60,开始时间为12:00:00,12:01:00则仍然会输出v2程序,但12:01:01会输出BOOM!。 输出程序将不接受任何输入(除了较短的空未使用参数外)。开始时间应以“硬编码”值的形式提供给下一个程序(这就是为什么输出程序的输出与前一个程序(在大多数语言中)不完全相同的原因。 仅以字节为单位计算主程序/功能的大小。 您可以将程序/函数输出为字符串(或相当合理的格式,例如字节/字符数组/列表),如果您的语言支持,则输出为函数,也可以输出其他合理格式(请询问您是否不确定)。 通用规则: 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 另外,如有必要,请添加说明。
9 code-golf  quine  date 

12
星号病毒
给定正整数N(“病毒性”),您的程序应创建一棵ASCII艺术图的树,该树的长度为N的两个分支从左上角向下和/或向右延伸。 在第一个星号之后,每个分支所采用的方向可以是向右或向下,并且此选择应在接下来的每一步中随机选择1。 例如,假设输入为5,则输出可能类似于: *** * *** ** ** 允许两个分支接触(在相邻的单元格上),但不能重叠(在同一单元格上),因此不允许以下操作: *** * * ***** * * 例子 对于input 1,唯一可能的输出是: ** * (这将出现在所有有效输出中,因为使两个分支采用相同的路径将导致它们重叠。) 输入的可能输出3包括: *** * * ** ** *** * * 输入7: **** * ** * ** * *** * 输入10: **** * * ********* * ***** 这是 代码高尔夫球,因此最短的有效答案(以字节为单位)将获胜。 1.这应该是均匀随机的(即每个方向有50/50的机会),或者与在普通硬件上获得的均匀随机接近。

30
输出一些保留字
对于计算机语言,保留字是不能用作标识符的字,例如变量,函数或标签的名称。对于其他计算机语言,可以将关键字视为语言说明的集合。 挑战 使用您选择的语言,使用所选语言编写代码,给定一个介于1到10之间的数字1<=n<=10,输出n所选语言的任何保留字(关键字)。 细节 如果选择的语言区分大小写,则输出的关键字也必须是区分大小写的。 如果所选语言不区分大小写,则输出的关键字在任何情况下都可以。 如果所选语言的关键词少于10个p,则代码必须输出和n之间的所有保留字。p10 如果可能,请在答案中指定是否将运算符视为关键字。 Java(JDK10)的可能示例 n=1 --> true n=3 --> try new interface n=4 --> continue this long break > <>的可能样本 n=1 --> > n=3 --> > < ^ n=4 --> > < \ / Brain-Flak的可能样本 n=1 --> ( n=3 --> ( ) [ ] n=9 …

5
折叠式德语
给定德语字符串和大小写指示(小写/大写/标题),将字符串折叠到该大小写。 技术指标 输入仅包含a– z加号äöüß-,.;:!?'"(大写和/或小写)。 目标案例可以视为一致类型的任何三个唯一值(请指定它们是什么);三个字符或三个数字或三个位模式。(当前不允许使用其他格式来阻止将案例说明“外包”。如果您认为应该允许使用其他格式,请添加注释。) Titlecase表示除字母后的字母(字母为a– z加号äöüß)以外的所有字母均为大写。 陷阱 当ß需要大写时,它必须变为ẞ。某些折叠式内置程序和库无法执行此操作。 当ß需要为大写字母时,它必须变为Ss。某些折叠式内置程序和库无法执行此操作。 ss可能出现在文本中,并且绝对不能转换为ß或ẞ。 例子 大写die Räder sagen "ßß ss" für dich, wegen des Öls! 是DIE RÄDER SAGEN "ẞẞ SS" FÜR DICH, WEGEN DES ÖLS! 小写 die Räder sagen "ßß ss" für dich, wegen des Öls! 是 die räder sagen "ßß ss" für …

4
现在我们正在考虑n维!
的问题:给定一个数n≥2,多少不同成对的点上的n维n x n x n x n x n x n ... x n点阵,其中坐标范围从0到n - 1,是一个距离至少 n分开?成对的{(2,1,3,1), (3,2,1,3)}和{(3,2,1,3), (2,1,3,1)}不会被视为彼此不同,因为它们由相同的两个相反点组成。请注意,对的总数增长非常迅速。总对数去6,351,32 640,4 881 250,1 088 367 840,等。 测试用例: 2 -> 0 (all pairs are at most a distance of sqrt(2) < 2 apart) 3 -> 28 (They must either be (2,2,1) or …

1
工作时间计算器
这是基于我公司如何处理每个员工的工作时间监控。我们每个人都有一张可以在传感器前通过的卡,这样一来,时钟便记录了员工签到或签出办公室的时间。每次寄存器都链接到一个代码: 代码0:员工到达(或返回)办公室。 代码1:员工离开办公室吃午餐。 代码2:员工在一天结束时离开办公室。 代码3:员工出于工作原因离开办公室。 代码4:员工出于个人原因离开办公室。 代码0寄存器有时将被称为“零寄存器”,代码1至代码4寄存器有时将被称为“非零寄存器”。 因此,对于工人来说,正常的一天会生成如下的注册表: Code/Time ------------ 0 8:17 // The employee arrives at the office 4 11:34 // The employee leaves the office to smoke 0 11:41 // The employee returns to the office 1 13:37 // The employee leaves the office to have lunch 0 …

5
挑战6:运输码头重新贴标!
<<上一页 下一页>> 感谢PPCG社区,圣诞老人成功地将礼物分类到正确的顺序,以便搬进运输码头。不幸的是,运输码头的标志坏了,所以他不知道把所有礼物放在哪里!礼物全部归为一组,而不是按照范围分组,Santa承认这是一个更好的主意。 现在,给定礼物的排序顺序,确定所有可能的最小范围配置,以使礼物的顺序正确。也就是说,找到所有最小范围的配置,以使根据挑战#5中的算法对礼物进行排序不会改变顺序。 挑战 最小范围配置是范围的列表,以使范围各自尽可能小。也就是说,如果指定范围覆盖礼物的特定子集,则该范围的最小值和最大值必须与该子集的最小值和最大值相同。换句话说,缩小封面的任何范围将导致它不再是封面。 挑战在于找到适用于当前尺寸的所有可能的最小范围配置。让我们举个例子:[3, 1, 2, 5, 4, 7, 6] 有一个简单的情况,那就是要占据整个当前配置的范围。在这种情况下,[[1, 7]]将是一个解决方案。 对于具有唯一元素的示例,另一种琐碎的情况是[[3], [1], [2], [5], [4], [7], [6]](因为不需要对范围进行排序)。 在此示例中,我们还看到[[1, 3], [4, 7]]和[[1, 3], [4, 5], [6, 7]]以及与[[1, 3], [5], [4], [6, 7]]和也可以[[1, 3], [4, 5], [7], [6]]。 的最终答案[3, 1, 2, 5, 4, 7, 6]是[[[3], [1], [2], …

1
来临挑战2:当前的保险库突袭!
<<上一页 下一页>> 挑战 现在,圣诞老人终于弄清楚了如何进入他现在的保险库,他意识到,精灵们以某种方式进入了他的仓库并偷走了他的一些礼物!他们还没有弄清楚如何离开金库,所以圣诞老人必须设法抓住他们。圣诞老人和小精灵都有无限的运动能量,但不幸的是,小精灵具有更高的无限能量,因此,如果最终他们到处循环运行,那么小精灵就会获得自由。 给定一个n节点和e边的图形,任意两个节点之间都存在游走,以及精灵和圣诞老人​​的位置,确定圣诞老人在累之前可以抓到多少只精灵。 追逐是基于回合的。在每个周期中,精灵都首先同时移动(它们可以彼此移动并移动到同一节点上),然后圣诞老人将移动。如果圣诞老人移动到与小精灵相同的节点上,那么他已经抓住了那个小精灵。每个小精灵只能在一个步骤中从一个节点移动到其邻居。一开始圣诞老人也是如此,但是对于他遇到的每个精灵,圣诞老人都可以采取进一步的措施。因此,如果圣诞老人抓到了一个小精灵,那么他可以从一个节点移动到其邻居的邻居。这意味着他可以移动到某个节点然后再返回。但是,由于圣诞老人在此期间的运行速度过快,因此他不会抓到任何在中间步骤中经过的精灵(因此,如果他在A上,A与B连接,B与C连接,则有一个小精灵B,然后圣诞老人从A-> B-> C移出,尚未捕获小精灵)。但是,圣诞老人不必一次移动那么多步骤。他每回合最多移动1 +(被抓住的精灵数量)。 请注意,所有小精灵每转一圈都必须移动,如果一个小精灵移动到圣诞老人的节点上,就会被抓住。 一开始,所有实体(精灵,圣诞老人)都会位于不同的节点上。 规格和规则 理论上,您的程序应可用于任何大小的输入。输入将以图形,精灵的位置和圣诞老人​​的位置给出。您可以采用任何合理格式的图形(节点列表+边列表,边列表,邻接矩阵,循环符号等),并且可以以与您的图形输入格式一起使用的任何合理格式来放置位置(索引在节点列表等中)。输出应为单个正整数,指示圣诞老人可以抓到的最大精灵数量。 测试用例 这些是作为边的列表和位置的节点编号给出的。 Input -> Output [(0, 1), (1, 2)], [0, 2], 1 -> 2 # Easy win for Santa, the elves get themselves caught :P [(0, 1), (1, 2), (2, 3), (3, 0)], [0, 1], 2 -> …

1
五字符ASCII映射
注意:在本文中,术语“字符”和“颜色”本质上是同一件事 这个图片: 可以表示为 ....'''333 .eeee'''3e ..dddd33ee %%%dd####e (将颜色映射为ASCII字符) 四种颜色定理指出:“在将平面分成相邻区域的任何情况下,生成一个称为图的图形,对地图区域进行着色所需的颜色不超过四种,因此,两个相邻区域的颜色都不相同。两个如果这些区域共享不是角的公共边界,则这些区域称为相邻区域,其中角是三个或更多区域共享的点。” -维基百科(链接) 这意味着应该可以使用四种颜色为地图着色,以使没有两个共享边的部分共享一种颜色。 仅使用四种颜色为地图着色的算法很复杂,因此在此挑战中,您的程序仅需要使用五种或更少的颜色为地图着色。 重新着色的先前地图可能看起来像这样: 可以表示为 ....'''333 .eeee'''3e ..dddd33ee 333dd....e 或同等 @@@@$$$!!! @^^^^$$$!^ @@<<<<!!^^ !!!<<@@@@^ 挑战: 给定一个由ascii字符组成的“地图”(每个字符代表不同的颜色),请对该地图“重新着色”(使用不同的ascii字符代表地图),使其仅使用五种或更少的颜色。 例: 输入: %%%%%%%%%%%%##########$$$$$$$$%% *****%%%####!!!!!!!%%%%%%%%%#^^^ (((((((***>>>>??????????%%%%%%%% &&&&&&&&$$$$$$$^^^^^^^))@@@%%%%% ^^^^^^%%%%%%%%%%%%############## 可能的输出: 11111111111122222222223333333311 44444111222255555551111111112444 22222224441111444444444411111111 55555555222222255555553355511111 22222211111111111122222222222222 说明: 输入映射将始终使用六个或更多字符 您可以在输出中使用任何五个不同的字符 您可以在输出中使用少于五个不同的字符 您可以采用任何合理的格式输入(包括数组数组或字符串数​​组) 这是代码高尔夫球,因此最短的答案为准。 沙盒链接
9 code-golf 

9
来临挑战3:是时候重新制作礼物了!
<<上一页 下一页>> 不幸的是,圣诞老人无法及时赶上精灵!他现在必须回到制造礼物。由于精灵绝对不是圣诞老人的奴隶,所以他必须弄清楚要付多少钱给他们。 挑战 给定一些有关礼物的信息,确定所有礼物的制造成本。 每个礼物都放在一个纸板箱中,并用包装纸包裹,最后用缎带包裹。包装纸很神奇,不需要重叠,因此包装纸的使用量正好等于盒子的表面积。所有礼物都是矩形棱柱,因为这样圣诞老人可以更紧凑地存放它们。色带沿所有三个方向缠绕(因此,用于包装的色带的长度等于三个不同周长的总和)。 幸运的是,礼物本身的成本是已知的。纸板每平方米1美元,包装纸每平方米2美元。(提示:您可以将表面积乘以3:P)。碳带每米收费1美元。 格式规格 输入将作为礼物清单给出,其中每个礼物都包含实际物品的成本和礼物盒的三个维度。您的输出应该是所需的总成本。 准确的说,对于单个存在的关于项目成本的成本公式c和尺寸x,y和z是c + 6 * (x * y + y * z + z * x) + 4 * (x + y + z)。 测试用例 [[7, 8, 6, 7], [7, 7, 5, 5], [8, 9, 6, 7], [6, 5, 10, 10], [5, …

6
输出向量的所有不同排列
挑战: 输出一个可能很长的正整数列表的所有不同排列。您可能会假设测试时向量的数目少于1,000,但是从理论上讲,该过程应适用于任何一个数目大于一个的向量,而不论大小。 限制条件: 您必须将内存使用量限制为O(n ^ 2),其中n是输入向量中元素的数量。您不能拥有O(n!)。这意味着您无法将所有排列存储在内存中。 您必须将时间复杂度限制为O(result size * n)。如果所有数字相等,则为O(n);如果所有数字均不同,则为O(n!* n)。这意味着您无法创建一个排列并将其与所有其他排列进行检查以确保唯一性(这将是O(n!^ 2 * n))。 可以接受表明满足时间和内存限制的经验度量。 您实际上必须打印/输出排列(因为不可能存储它们)。 如果您运行程序足够长的时间,那么所有排列都应输出(理论上)! 不同的排列: 列表[ 1,1,2 ]具有三个排列,而不是六个:[ 1,1,2 ],[1,2,1]和[2,1,1]。您可以选择输出的顺序。 可管理的测试用例: Input: [1, 2, 1] Output: [1, 1, 2] [1, 2, 1] [2, 1, 1] Input: [1, 2, 3, 2] Output: [1, 2, 2, 3] [1, 2, …

23
来临挑战5:将礼物搬到运输码头!
<<上一页 下一页>> 多亏了PPCG社区,Santa设法重新制造了他所有的礼物,并且在装配线之后,现在就可以将这些礼物搬到运输码头了! 圣诞老人的每个运输码头都只能容纳一定范围的当前尺寸,因为运输雪橇是专门针对特定尺寸的(任何较轻的雪橇都会很浪费,更重的雪橇将无法承受负荷)。因此,他需要您帮助他拿礼物并将其分类到正确的运输码头中。 挑战 根据清单和运输码头范围,将礼物稳定地组织成正确的顺序。 让我们以这个为例:礼物是[5, 3, 8, 6, 2, 7],码头范围是[[1, 5] and [6, 10]]。 礼物5,3以及2进入第一对接和礼物8,6和7进入第二平台。可以显示为[[5, 3, 2], [8, 6, 7]]。此列表将比输入更接近排序,但stably意味着在每个扩展坞中,礼物的顺序必须与输入的顺序相同(否则,您可以对整个列表进行排序)。 在这种情况下,您的最终输出将是[5, 3, 2, 8, 6, 7](作为固定列表)。 格式化规格 你将被给定输入作为整数的平面列表,并且在任何合理的格式范围的列表(例如,用于上述情况的范围内,可以给定为[[1, 5], [6, 10]],[1, 5, 6, 10],或[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])。您的输出应该是任何合理格式的整数整数列表。 输入可以包含重复值;在这种情况下,您需要返回它们的所有实例。当前所有尺寸均在一个尺寸范围内,并且您可以假定这些范围永远不会重叠。只要覆盖所有当前尺寸,范围就可能存在差距。 规则 适用标准漏洞 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜 …

7
火车穿过一座标有商标的桥
考虑由标有级联的正整数的数字的图块形成的长度为B的桥。例如,如果B为41,则它将如下所示: ----------------------------------------- 12345678910111213141516171819202122232425 现在想象一列长度为T的火车过桥。火车的最左端开始于位置X(1索引)。为了更好地理解问题,让我们为事件制定一个方案,其中B = 41,T = 10,X = 10。使用等号(=)和线绘制火车: __________ | ======== | | ======== | ----------------------------------------- 12345678910111213141516171819202122232425 火车在每一步中都可以通过其所在的唯一图块的总和来前进。例如,火车在上面站立的磁贴为:[1, 0, 1, 1, 1, 2, 1, 3, 1, 4],唯一(重复数据消除)磁贴为:[1, 0, 2, 3, 4],其总和为10。因此,火车可以前进10。我们应该再次绘制它并重复该过程,直到火车的最左边的点通过最后一个图块: __________ | ======== | | ======== | ----------------------------------------- 12345678910111213141516171819202122232425 唯一区块的总和:1 + 5 + 6 + 7 + …

5
椭圆系统
介绍 给定平面中的五个点,您的任务是计算通过这些点的椭圆的面积。 您可以假设可以使用给定的输入值构造一个完全不变的椭圆。 规则 输入是10任何方便形式的整数,与点的x和y坐标相对应。例如,您可以将输入作为10整数列表[x1, y1, x2, y2, ..., x5, y5]或[[x1, y1], [x2, y2], ..., [x5, y5]],等等。您也可以处理十进制数字,但只需要整数。 输出是椭圆面积的表示。这可以是一些符号表达式,也可以8是精度至少为十进制的十进制值。 这是代码高尔夫球,因此最短的答案以字节为单位。 输入和输出示例 输入: [-2、3、2、5、5、3、4、0、1,-3 输出: 62.15326783788685 通过这些点的椭圆的描述: 更多示例: f(60, -92, -31, -10, 78, -19, -27, -35, 91, -37) = 9882.59540465108 f(-9, -4, 7, 7, 10, 1, -7, -10, 0, 7) = 269.5966648188643 …

7
打假素!
简介/背景 在最近一次关于加密聊天的讨论中,我被挑战去讨论/帮助Fermat素数测试和Carmichael数字。该测试基于a^(p-1) mod p==1始终适用于素数p而不适用于复合材料的前提。现在,carmichael号码本质上是Fermat考验的最大敌人:您必须选择一个号码,a以使其不与素数p相抵a^(p-1) mod p!=1。现在,如果a不是互质,则基本上可以发现一个非平凡的因子p众所周知,保理可能相当困难。特别是在所有因素都足够大的情况下。您现在可能已经意识到,为什么在实践中不经常使用Fermat测试(还有更好的算法),这是因为作为防御者(在安全性方面)您需要为某些数字做与攻击者(即数量)。 因此,既然我们知道为什么这些数字有些引人入胜,我们将以最短的方式生成它们,因此只要需要,我们就可以记住生成的代码! Carmichael编号在OEIS上也称为A002997。已经 存在一个相关的挑战,但是这里的条目没有竞争力,因为它们是针对速度而非大小进行了优化的。同样的论点也适用于反方向,此处的输入可能会在速度上做出取舍,而有利于大小。 规格 输入项 这是一个标准 序列挑战,因此您将正整数或非负整数n作为输入。n可以根据需要选择0或1的索引(请指出)。 输出量 根据需要,您的输出将是n-th carmichael数或第一个ncarmichael数(请指出)。 规格 一个整数x是卡迈克尔数当且仅当x是复合材料和所有的整数y与gcd(x,y)=1,它认为y^(x-1) mod x==1。 谁赢? 这是 代码高尔夫球,因此以字节为单位的最短代码获胜!适用标准IO和漏洞规则。 测试用例 前几个carmichael号码是: 561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

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.