Questions tagged «code-golf»

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

8
N行动者:我可以达到多少个无限局面?
单招 棋盘是无限的二维方格,就像无限的棋盘一样。值为N的零件(一个N移动器)可以移动到与N的平方根正好等于其当前平方的距离(欧几里德测得的中心到中心)的距离的任何平方。 例如: 1移动器可以移动到水平或垂直相邻的任何正方形 2移动器可以移动到对角线相邻的任何正方形 五人棋棋子骑士一样的动作 请注意,并非所有的N型移动器都可以移动。3块移动器永远不会离开其当前正方形,因为板上的正方形都不与当前正方形的根3完全相同。 多招 如果允许其反复移动,某些碎片可以到达板上的任何正方形。例如,1移动器和5移动器都可以做到这一点。2移动器只能对角移动,并且只能达到正方形的一半。一块不能移动的棋子(例如3步移动棋子)不能到达任何方格(如果不发生移动,则起始方格不算作“到达”)。 图像显示可以到达的正方形。有关悬停的更多详细信息。点击查看大图。 1步或以上移动可达到的正方形用黑色标记 用红色方块显示正好可以移动1的方格 (3移动器除外,该方格不能移动) 给定的N移动者可以达到董事会的哪个比例? 输入项 正整数N 输出量 N移动者可以达到的董事会比例 这是从0到1(包括两端)的数字 对于此挑战,允许以最低的分数(例如1/4)输出分数 因此对于input 10,1/2和0.5都是可接受的输出。作为单独的分子和分母的输出也可以接受,包括不支持浮点数和分数的语言。例如,1 2或[1, 2]。 对于整数输出(0和1),以下任何格式都是可接受的: 对于0: ,0,0.0,,0/10 1[0, 1] 为1: ,1,1.0,,1/11 1[1, 1] 计分 这是代码高尔夫。分数是代码的长度(以字节为单位)。对于每种语言,以最短的代码为准。 测试用例 格式 input : output as fraction : output as decimal 1 : 1 : …

30
蓝鸭,红鸭,灰鸭
因此,上周我发布了一个挑战赛,以玩Duck,Duck,Goose。这导致许多明尼苏达州人对其地区的“灰鸭”变异发表评论。 所以这是规则: 使用以下颜色列表: Red Orange Yellow Green Blue Indigo Violet Gray 编写程序以遵循以下规则: 选择这些颜色之一,然后将其添加到“ duck”一词之前,然后将结果打印到新行。 如果颜色不是“灰色”,请重复步骤1。 如果颜色是“灰色”,请结束程序。 必须遵循的规则: 该程序不应始终打印相同的行数。 它可以从“灰鸭”开始,但不应始终如一。 每行上应该只有一只鸭子,并且不输出空行。 在颜色和鸭子之间至少应有一个空间。 重要输出前后的空白并不重要。 输出的大小写无关紧要。 颜色可以重复。 输出不必每次都包含每种颜色,但是您的代码必须可以输出每种颜色。 不能包含上述阵列以外的颜色。 灰色或灰色都可以接受。 颜色不应始终一致。 争取最短的程序。最少的字节数获胜。 输出示例: Green duck Orange duck Yellow duck Indigo duck Yellow duck Gray duck 感谢@Mike Hill首先提醒我这种变化。
48 code-golf 

30
海底有个洞
在尝试(并失败)说服我的小儿子吃晚餐时,我尝试唱歌。在这首歌的中途,我意识到公式结构可能很适合打高尔夫球! 任务是编写一个不接受任何输入并产生以下文本的程序或函数: There's a hole in the bottom of the sea There's a hole in the bottom of the sea There's a hole, there's a hole There's a hole in the bottom of the sea There's a log in the hole in the bottom of the sea There's a log …

12
易裂变数字
我在进行OEIS的开发时发现了这个序列,但是从来没有绕过它作为答案。在用Mathematica编写了参考实现之后,我认为这是一个有趣的练习,但是要作为一个单独的挑战来做,所以我们开始吧。 让我们建造一个数字裂变反应堆!考虑一个正整数N。举例来说,我们来看一下24。要分解该数字,我们必须找到相加为的最大连续正整数N。在这种情况下,即为7 + 8 + 9 = 24。因此,我们24分为三个新数字。但是,如果没有链式反应,裂变反应堆就不会多了。因此,让我们递归地重复这些组件的过程: 24 /|\ / | \ / | \ 7 8 9 / \ /|\ 3 4 / | \ / \ / | \ 1 2 2 3 4 / \ 1 2 请注意,只要数字不能分解为较小的连续整数,我们就会停止该过程。另请注意,我们本来可以将编写9为4 + 5,但2 + 3 + 4具有更多组件。的裂变数的N现在定义为在此过程中,包括获得整数的个数N本身。上面的树有13个节点,所以F(24) = 13。 …

30
面子McFaceface
任何人都记得博伊吗? 您完全可以说出一句老话吧? 编写一个将字符串转换为Somethingy McSomethingface的函数。 它应该接受一个字符串作为输入。忽略输入的大小写。 如果单词以“ y”结尾,则函数不应在第一个实例中添加额外的“ y”,而应在第二个实例中将其删除。 如果单词以“ ey”结尾,则在第一个实例中不应添加其他“ y”,而在第二个实例中应将两者都删除。 输出应仅在首字符中包含大写字母,“ Mc”中的“ M”以及“ Mc”之后的第一个字符。 它只需要使用3个或更多字符的字符串即可。 例子: boat => Boaty McBoatface Face => Facey McFaceface DOG => Dogy McDogface Family => Family McFamilface Lady => Lady McLadface Donkey => Donkey McDonkface Player => Playery McPlayerface yyy => Yyy McYyface DJ …
47 code-golf  string 

30
代码中的99个错误
代码中的99个错误 在计算机科学中对“ 99瓶啤酒”的改编通常是在互联网上重新发布的,在这种计算机中,臭虫增加而不是减少了。示例T恤在这里。 我认为,看到各种各样的语言中潜在的递归和随机数生成并找到最有效的方法将很有趣。 99瓶啤酒还有很多其他挑战,但似乎没有一个越来越多! 挑战 您的程序或函数不应该输入任何内容,然后打印 代码中的99个错误 代码中的99个错误 取下并修补 代码中的X个错误 (空行) 其中X是前一个整数减1加[-15,5]范围内的随机整数。 您可以将负1合并为随机整数,从而允许范围为[-16,4]。 范围可以是互斥的,因此要减去一加(-16,6)或(-17,5)。 随机整数不必均匀分布,而必须全部可能。 该程序始终以99个错误开始。 您可以忽略“ 1个错误”的语法错误。 错误数量为0或负数时,程序应停止并打印 代码中的0个错误 错误绝不能出现负数。结局应该像 代码中的Y个错误 代码中的Y个错误 取下并修补 代码中的0个错误 (空行) 代码中的0个错误 尾随新行是可以接受的。 您的代码可以是完整程序或函数。 没有输入。 输出应为stdout或返回。 只要STDOUT包含必需的文本,日志/ STDERR中的警告/错误就可以。有关更多信息,请参见此处。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 示例输出 每次粘贴-11错误时粘贴的bin示例输出
47 code-golf  random 

29
转到第N页
通常需要建立一个页面选择界面。通常看起来像这样: prev 1 ... 3 4 [5] 6 7 ... 173 next 这意味着总共有173页,您目前位于第5页。 这项挑战要求您将页面总数和当前页面数作为输入,并输出一个字符串(或数组)以“显示”页面选择器。 输入项 2个正整数 当前页码 页数 保证1 <=当前<=总计。 输出量 输出代表页面选择器的ui的字符串或数组。 如果以字符串形式输出,则每页之间应使用一个空格(U + 0020)。 如果以数组形式输出,则在将每个项目转换为字符串并以单个空格将它们连接起来之后,该数组应产生与字符串相同的结果。 三个点(...)对于数组输出不是可选的。 细节 如果current == 1,则不会输出“ prev”,否则,将首先输出“ prev”。 如果current == total,则不输出“ next”,否则输出“ next”。 应该始终输出首页(1)和末页(总计)。 只要在[1..total]范围内,就应输出当前页面,(当前-1)页面,(当前-2)页面,(当前+ 1)页面,(当前+ 2)页面。 不得输出其他页码。 输出的页面应按升序排序。 输出中不应包含重复的页码。 当前页面应以一对括起来突出显示[]。 如果邻居之间有空隙,...则应插入三个点()。 测试用例 Current Total …
47 code-golf  string 

6
打高尔夫球的数目大于树的数目(3)
函数TREE(k)给出树的最长序列T 1,T 2,... 的长度,其中每个顶点都用k种颜色之一标记,树T i最多具有i个顶点,没有树是a 序列中紧随其后的任何树的未成年人。 TREE(1)= 1,例如T 1 = (1)。 TREE(2)= 3:例如T 1 = (1); T 2 = (2)--(2);T 3=(2)。 TREE(3)很大。甚至比格雷厄姆的数字还要大。您的工作是输出一个甚至更大的数字! 这是一个代码问题,因此目标是用确定性输出大于或等于TREE(3)的任何语言(向标准输出)编写最短的程序。 您不允许输入。 您的程序最终必须终止,但是您可以假定计算机具有无限的内存。 您可能会假设您的语言的数字类型可以包含任何有限值,但是需要解释一下它在您的语言中的确切工作方式(例如:浮点数具有无限精度吗?) 不允许将无穷大作为输出。 数字类型的下溢引发异常。它不会环绕。 由于树(3)是一个复杂的号码,你可以使用快速增长的层次逼近˚F θ(Ω ω ω)+1(3)作为数字击败。 您需要提供一个解释,说明为什么您的人数如此之大以及代码的版本是否过高,以检查您的解决方案是否有效(因为没有计算机具有足够的内存来存储TREE(3)) 注意:此处当前找不到答案。 为什么TREE(3)这么大?

24
降级为回文
给定一个string s,返回可以删除以创建回文的最小连续子字符串。 例子: 800233008 -> 2 racecarFOOL -> FOOL abcdedcba -> (empty string) ngryL Myrgn -> "L " (or " M") 123456789 -> 12345678 (or 23456789) aabcdbaa -> c (or d) [[]] -> [[ (or ]]) a -> (empty string) 用户的测试用例建议(如果您未列出边缘用例,请发表评论): aabaab -> b | Suggested by Zgarb, some returned …

30
我的三角形对吗?
给定a, b, c一个三角形的三个边的长度,请说该三角形是否为直角(即,一个角度等于90度)。 输入项 任何顺序的三个正整数值 输出量 无论是具体的真实输出(true,1,yes,...)或特定假输出(false,0,no,...) 例 5, 3, 4 --> yes 3, 5, 4 --> yes 12, 37, 35 --> yes 21, 38, 50 --> no 210, 308, 250 --> no 规则 输入和输出可以任何方便的格式给出。 在您提交的文件中,请注明正确和错误的值。 无需处理负值或无效的边缘三倍 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

13
极端斐波那契
这个网站上已经进行了十亿次的斐波那契挑战,所以让我们通过十亿次的斐波那契挑战来为事情加分吧! 您面临的挑战是如何使用尽可能短的程序输出第1,000,000,000个斐波那契数的前1000个十进制数字。然后,可以选择在其后跟随您选择的任何其他输出,包括但不限于其余数字。 我使用的约定fib 0 = 0,fib 1 = 1。 您的程序必须足够快才能运行并验证其正确性。为此,这里是前1000位: 7952317874554683467829385196197148189255542185234398913453039937343246686182519370050999626136556779332482035723222451226291714456275648259499530612111301255499879639516053459789018700567439946844843034599802419924043753401950114830107234265037841426980398387360784284231996457340782784200767760907777703183185744656536253511502851715963351023990699232595471322670365506482435966586886048627159716916351448788527427435508113909167963907380398242848033980110276370544264285032744364781198451825462130529529633339813483105771370128111851128247136311414208318983802526907917787094802217750859685116363883374847428036737147882079956688807509158372249451437519320162582002000530798309887261257028201907509370554232931107084976854715833585623910450679449120011564762925649144509531904684984417002512086504020779012501356177874199605085558317190905395134468919443313026824813363234190494375599262553025466528838122639433600483849535070647711986769279568548796855207684897741771784375859496425384355879105799

30
井中的蜗牛
背景 有一个常见的谜语,像这样: 一只蜗牛在30英尺深的井底。蜗牛每天都能爬3英尺。晚上睡觉时,它们会向后滑动2英尺。蜗牛要离开井需要多少天? 直观的答案是 30天,因为蜗牛每天以1英尺的高度爬30天才能到达山顶, 但实际上答案是 28天,因为一旦蜗牛悬空了27英尺(27天之后),他们将在28天简单地将剩下的3英尺爬到顶部。 挑战 这个挑战笼罩了这个谜语。给定三个正整数作为输入,代表总高度,爬升高度和下降高度,返回从井中爬升所需的天数。 如果蜗牛不能爬出井,则可以返回0,返回假值或引发异常。您也可以编写仅当存在解决方案时才会停止的代码。 如果愿意,可以将跌落高度作为负整数。 测试用例 (30,3,2)-> 28 (84,17,15)-> 35 (79,15,9)-> 12 (29,17,4)-> 2 (13,18,8)-> 1 (5,5,10)-> 1 (7,7,7)-> 1 (69,3,8)->无 (81,14,14)->无 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。

30
成为第一个(仅留下第一个Truthy)
介绍 每年,Dyalog有限公司都会举办一次学生比赛。面临的挑战是编写好的 APL代码。这是今年第八个问题的与语言无关的高尔夫版本。 我得到比赛原作者的明确许可,可以在此处发布此挑战。跟随提供的链接并与作者联系,以进行验证。 问题 给定布尔值列表,“关闭”第一个Truthy之后的所有Truthies。 没有真相吗?没问题!只需返回未修改的列表即可。 例子 [falsy,truthy,falsy,truthy,falsy,falsy,truthy] → [falsy,truthy,falsy,falsy,falsy,falsy,falsy] [] → [] [falsy,falsy,falsy,falsy] → [falsy,falsy,falsy,falsy] *您的所有真相必须相同,而您的所有虚假也必须相同。这包括输出。

30
这是功能吗?
给定一个列表(key, value)对,确定它是否代表一个函数,这意味着每个键都映射到一个一致的值。换句话说,每当两个条目具有相等的键时,它们也必须具有相等的值。重复输入即可。 例如: # Not a function: 3 maps to both 1 and 6 [(3,1), (2,5), (3,6)] # Function: It's OK that (3,5) is listed twice, and that both 6 and 4 both map to 4 [(3,5), (3,5), (6,4), (4,4)] 输入:(key, value)使用数字1到9 的成对有序序列。您可能不需要特定的排序。您也可以将键列表和值列表作为单独的输入。 输出:功能的一致值,非功能的一致值。 测试用例:前5个输入是函数,后5个不是。 [(3, 5), (3, 5), (6, …

15
攻击,衰减,持续,释放
声音合成器使用包络发生器来控制声音的某些参数(例如整体响度)如何随时间变化。在许多合成器中,信封是由四个参数定义的,如维基百科的下图所示: 起音时间(A):第一次按下该键时,信封从零开始达到最大电平所花费的时间。 衰减时间(D):包络达到指定维持水平所需的时间。 延音等级(S):在初始击打和衰减之后,只要按下琴键,该等级就保持不变。 释放时间(R):释放键时信封到达零的时间。 挑战 输入四个参数A,D,S,R并绘制包络线。 参数将是0到127之间的整数值。 的最高水平(在攻击阶段结束时达到)将被假定为127。 维持电平的水平片段将假定具有持续时间64(在实际声音中,该持续时间不是固定的,而是由按住琴键的时间决定的)。 格式和更多详细信息 输出应为光栅或矢量格式的图像。如果是栅格,则折线应在水平方向上至少占据50个像素。 图像可以以标准图像格式显示或生成为文件。可以将文件写入磁盘,也可以将其确切内容输出到STDERR或作为函数返回参数输出。 图形只需要包含定义信封的折线。每个轴的比例可以自由选择。其他元素(如轴线,数字标签或线条颜色)是可选的。 输入方式和格式像往常一样灵活。例如,您可以采用任意顺序的四个数字,也可以包含它们的数组。可以提供程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 输入采用格式[A D S R]。请注意,每个图中的比例都是不同的(根据比例可以自由选择的规则) [15 30 70 40] [64 64 64 64] [0 10 50 80] [0 0 90 80] [5 50 0 0] [5 50 0 80] [24 32 127 48]

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.