Questions tagged «code-golf»

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

9
帮我认出我的怪物
背景 NetHack电脑游戏的历史可以追溯到1987年,当时在电脑游戏中广泛使用图形技术。游戏中有很多怪物,并且可能一次需要在屏幕上放置很多怪物,因此怪物的绘制方式非常简单:将怪物简单地以ASCII字符的形式绘制在屏幕上。 除了有很多怪物外,还有很多类型的怪物。知道哪个是很重要的。您看到小猫和龙时必须做出不同的反应。因此,大多数ASCII用来表示怪物。例如,一只小猫是f,一条红龙是D。这意味着了解给定怪物的外观会非常有帮助,因为如果您稍后在游戏中遇到它,它将帮助您识别它。(请注意,怪物的类型多于ASCII字符,因此它们中的一些共享;红色龙和蓝色龙都是D。) 任务 您的程序必须以NetHack怪兽的名称作为输入,并在游戏中产生表示它的ASCII字符作为输出。允许程序假定输入实际上是NetHack怪兽的名称。如果输入无效,则可能希望崩溃,产生无意义的结果等。 以下Stack Snippet是一个JSON对象,提供了可能的输入到其对应输出的完整映射: 显示代码段 { "Aleax": "A", "Angel": "A", "Arch Priest": "@", "Archon": "A", "Ashikaga Takauji": "@", "Asmodeus": "&", "Baalzebub": "&", "Chromatic Dragon": "D", "Croesus": "@", "Cyclops": "H", "Dark One": "@", "Death": "&", "Demogorgon": "&", "Dispater": "&", "Elvenking": "@", "Famine": "&", "Geryon": "&", "Grand Master": "@", …

28
快活的高尔夫球手,大家好!
今天是每个人的圣诞节,这是要庆祝的高尔夫挑战赛。您需要制作一个程序以打印出礼物。具体来说,是“圣诞快乐”。但是,有一个陷阱:该程序仅在12月25日才能运行。如果代码在其他任何一天运行,则该程序应崩溃。 这是Code-Golf,因此以字节数最少的答案为准。 圣诞节快乐!
35 code-golf  date 

8
乌龟嘶嘶声
问题描述 假设您是网格上的乌龟。您将得到两个数字f和b,并且您朝东。您按照以下规则在网格上进行游行,计算遇到的每个单元: 默认情况下,您将计数写入您所在的单元格,然后向前走。 如果该计数可被f整除,则将其写入所在F的单元格,然后向右转,然后向前走。 如果该计数可被b整除,则将其写入B您所在的单元格,然后向左转,然后向前走。 如果该计数可被f和b整除,则将其写入所在FB的单元格,然后向前走。 如果您到达过一个广场,就停下来。 例如,遵循使用f = 3和b = 5的这些规则,将生成如下所示的模式: F 28 29 FB 1 2 F 26 4 F B B F 23 7 22 8 F B B F 19 11 F 17 16 FB 14 13 F 挑战 编写一个程序或函数,接受对应于f和b的两个数字作为输入,并为上述规则给出的这些数字生成模式作为输出。 格式要求: 每个单元格是两个字符宽 单元格内容在这两个字符内右对齐 同一行中的单元格由空格分隔 单元格的第一列必须包含一个非空单元格 所有行必须包含非空单元格 …
35 code-golf  grid 

30
是Mersenne Prime吗?
如果数字既是素数又可以以2 n -1的形式书写,则该数字就是梅森素数,其中n是正整数。 给定任何正整数,您的任务是确定它是否为梅森素数。您可以提交返回真实/错误值的函数,也可以提交执行IO的完整程序。 规则: 因为这是code-golf,所以您应该以尽可能短的字节数为目标。允许内置。 应用标准的高尔夫球漏洞-您无法从外部文件读取Mersenne素数,也无法将其硬编码到程序中。 您的程序应能在您语言的标准整数大小范围内使用值。 测试用例 作为参考,可以在此处找到(已知)梅森素数的列表。一些方便的测试用例是: 2 -> False 1 -> False 20 -> False 51 -> False 63 -> False 3 -> True 31 -> True 8191 -> True 祝大家圣诞快乐!祝您假期愉快,无论您庆祝什么:)

4
FOIL Python的强类型!
您的任务是用Python 2或3编写一些代码,使该表达式如下: (a+b)(c+d) == a*c + b*c + a*d + b*d 将评估为,True而不会引发任何异常。 为了澄清,我将您的代码复制到一个文件中,然后复制到from该文件中import *。然后,将表达式输入控制台,并确认它是True。 这是代码高尔夫球,因此长度最短(以字节为单位)的答案会获胜。
35 code-golf  python 

30
评估三角形的长宽比
给定三角形的三个边长,请使用以下公式评估其长宽比AR: 哪里 三角形越接近等边,则1其纵横比越接近。长宽比大于或等于1有效三角形。 输入项 输入的是三个实数正数,可以将其封装在列表中,也可以根据需要封装任何类似的数字。 无论输入三个边长的顺序如何,程序都必须输出相同的值。 这三个数字将始终是一个三角形的有效sidelengths(退化三角形像一个与sidelengths 1,1并且2将不给出作为输入)。当值变得非常接近简并三角形时,您不必担心浮点数不准确(例如,您的程序会division by 0因输入错误而接受[1, 1, 1.9999999999999999])。 输入可以通过STDIN,作为函数参数或任何类似参数给出。 产出 输出是大于或等于1您的语言可接受的标准精度的实数。 输出可以打印到STDOUT,从函数返回或类似的东西。 测试用例 Inputs Output 1 1 1 1 3 4 5 1.25 42 42 3.14 ≈ 6.9476 14 6 12 1.575 6 12 14 1.575 0.5 0.6 0.7 ≈ 1.09375 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

15
在洗手间要尊重
当然,SE网络非常了解如何在洗手间受到尊重,但对于需要回顾的人来说,尊重意味着要冲厕所等。但是最重要的是,这意味着要在尽可能远的地方使用档位从其他人。 挑战 给定一组档位的蓝图,并指出哪些档位被用作字符串,您必须从最尊重您的业务所在的函数或程序中返回或打印。 输入 0 1 2 3 4 5 <- The stall number which is not actually visible in the input. | | |-| |-|-| <- the stalls 档位从左到右按升序编号。总是会有至少一个空的摊位。一个输入中最多可以有50个档位。如果愿意,也可以将输入作为0s和1s或布尔值的数组或字符串。 使用-中的档位(在管道之间)。 输出 最受人尊敬的摊位是离使用中的摊位平均最远的摊位。两个档位之间的距离是它们上方数字差的绝对值。 只是要清楚一点:您正在查找所有摊位的平均距离,而不仅仅是相邻的摊位。 您必须输出最受人尊敬的档位的最小数量,以使该档位为空。 例子 Input: |-| |-| OR 101 Output: 1 Input: | | |-| |-|-| OR 001011 …
35 code-golf  string 

24
将死(aka小便池问题)
我的Precalc老师遇到​​了他最喜欢的问题之一,他解决了(或更可能是受xkcd启发而偷走了)涉及小便池的问题。“将死”的情况是,每个小便池已经被占用,或者在其旁边有一个小便池被占用。例如,如果某人是,则nX X-X--X 被认为是将死。注意,一个人不能在一个已经被占用的小便池旁边占用一个小便池。 任务 您的程序将通过stdin,命令行参数或函数参数获取一个数字。然后,您的程序将打印出或返回与输入的小便池数量对应的将发生伴侣的方式。 例子 0 -> 1(空的情况下计为将死) 1 -> 1(X) 2 -> 2(X-或-X) 3 -> 2(X-X或-X-) 4 -> 3(X-X-,-X-X,或X--X) 5 -> 4(X-X-X,X--X-,-X-X-,或-X--X) 6 -> 5(X-X-X-,X--X-X,X-X--X,-X--X-或-X-X-X) 7 -> 7(X-X-X-X,X--X-X-,-X-X--X,-X--X-X,X-X--X-,X--X--X或-X-X-X-) 8 -> 9(-X--X--X,-X--X-X-,-X-X--X-,-X-X-X-X,X--X--X-,X--X-X-X,X-X--X-X,X-X-X--X,X-X-X-X-) ... 计分 以字节为单位的最小程序获胜。

30
像一二三一样容易
编写一个使用正整数的程序或函数。您可以假定输入有效,并且可以将其作为字符串。如果数字是以下任何一个 123 234 345 456 567 678 789 然后输出真实值。否则,输出一个伪造的值。例如,输入 1 2 3 12 122 124 132 321 457 777 890 900 1011 1230 1234 必须全部导致虚假输出。(输入不会有前导零,因此您不必担心诸如此类的东西012。) 以字节为单位的最短代码获胜。

9
Quixels-量子像素
介绍 quixel是一个量子像素。与经典像素类似,它用3个整数值(红色,绿色,蓝色)表示。但是,Quixel处于这三个状态的超级位置,而不是组合状态。该超高位置仅持续到观察到该quixel为止,在该点上它折叠为三个经典像素之一;RGB(255,0,0),RGB(0,255,0)和RGB(0,0,255)。 规格 表示 每个QUIXEL被表示为3点的整数0和255之间的阵列r,g并b分别。 超级职位 每个QUIXEL是在红色,蓝色和绿色状态之间的超级位置由下式表示R,G并B分别。 观察 观察到每个轴对偶时,它会崩溃为三种状态之一。每个古典状态的概率R = (r + 1) / (r + g + b +3), G = (g + 1) / (r + g + b + 3)和B = (b + 1) / (r + g + b + 3)。这样,每个古典状态总是以非零的出现概率出现。 输入值 该函数或程序应拍摄一个Quixel图像。如何做到这一点很灵活。文件名,使用多维数组等都可以接受。 输出量 函数或程序应生成经典像素的图像。此生成图像的数据结构也很灵活。请注意,所有的像素应该是这三个中的一个:RGB(255,0,0),RGB(0,255,0)和RGB(0,0,255) 输出不应确定 …

16
库存机
库存机 您可以访问数据集,tomorrowStocks其中包含您在纳斯达克上喜欢的业务的股票价格。该数据集是一个按打开后分钟数索引的容器。每个指数都包含当时的股票价格。 // Assume the stock market opens at 9:30AM EDT // tomorrowStocks[] contains the prices of your target stock. // If the stock is $22 @ 10:30AM EDT tomorrowStocks[60] == 22 输出量 你的任务是确定的最好的结果1 purchase和1 sale的1 stock从给定的数据集。 陷阱 您必须买卖1只股票。 你可以不买,并在同一时间段销售。 您必须先买才卖。 测试数据 [1,2,3,4,5] # 4 [1,99,2,105] # 104 [99,1,99,100] # …

16
确定字符串的“运气”
给定一个字符串,返回该字符串的“运气”。 正如我为完成此挑战而完全弥补的那样,字符串的运气是一个整数,其确定如下: 字符串的基本运气是1。 对于每个与“ lucky”(不区分大小写)单词共享的连续字母,将运气乘以2。例如,如果您的字符串是“ lu mberjack”或“ sma ck ”,则应乘以4。(更具体地说, 2 ^共享的连续字符数。) 共享字母必须以出现在“ lucky”中的相同连续顺序排列,但可以在单词中的任何位置以相同的值开头(“ luc”的倍数与“ cky”的倍数相同)为8。 如果单词多次出现并幸运地共享连续字符,请使用最长的连续字符串。 对于任何字母,它与单词“ omen”共享,则从运气中减去2。 它可以以任意顺序,任意次数匹配一个字符。例如,字符串“ nnnnnomemenn”失去了24个运气(12个匹配的字母) 例: luck("lucky") >>32 2 ^ 5(连续5个字母)= 32 luck("firetruck") >>6 2 ^ 3-2(来自uck的 3个连续字母,与omen共享e) luck("memes") >>-7 1-8(基本金额,与“预兆”共享4个) 这是代码高尔夫球,因此字节最少的答案会获胜。 您可以使用任何方式输入和输出-编写函数,使用标准输入等。 对于函数,假定对该语言有意义的任何数据类型。(例如,在JavaScript中,将传递a String并返回Number) 编辑:您可以假设任何输入都是小写。
35 code-golf  string 

6
解决色彩难题
在我们Puzzling.SE的朋友那里,发布了以下拼图:这个半彩色拼图是否始终可以解决?由Edgar G.你可以发挥它在这里。 拼图说明 给定一个m x n网格,其中包含三种不同颜色的图块,如果它们的颜色不同,则可以选择任意两个相邻图块。然后将这两个图块转换为第三种颜色,即这两个图块未表示的一种颜色。如果所有图块都具有相同的颜色,则难题就解决了。显然,一个可以证明的是这个难题始终是可解的,如果没有m,也不n是被3整除。 当然,这乞求一种求解算法。您将编写解决此难题的函数或程序。请注意,stdout明确允许具有“副作用”的函数(即,输出处于打开状态,而不是某些尴尬的数据类型返回值)。 输入输出 输入将是一个m x n由整数的矩阵1,2和3(或0,1,2如果方便的话)。您可以以任何理智的格式接受此输入。这两个m和n的>1,而不是被3整除你可以假设这一难题没有解决 然后,您将解决难题。这将涉及重复选择两个要“转换”的相邻图块(请参见上文)。您将为求解算法采取的每个步骤输出这些图块的两个坐标。这也可以是任何合理的输出格式。您可以自由选择从0索引到1索引之间的索引,还是先索引行还是列。但是,请在您的答案中提及这一点。 您的算法应在合理的时间内在原始8x8情况下运行。暴力破解它完全是明令禁止的,即你的算法应该下运行O(k^[m*(n-1)+(m-1)*n])与k所需的解决方案的步数。但是,该解决方案并不需要是最优的。链接问题中给出的证明可以使您了解如何执行此操作(例如,首先仅使用垂直相邻的图块来创建所有列,然后再执行所有行) 测试用例 在这些测试用例中,坐标是基于1的,并且首先对行进行了索引(如MATLAB / Octave以及可能的许多其他索引)。 Input: [1 2] Output: (result: all 3's) [1 1],[1,2] Input: [ 1 2 3 1 ] Output: (result: all 1's) [1 1],[2 1] (turn left column into 2's) [2 1],[2 2] (turn right …

9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

22
将数组变成数学题
给定非负整数的非空列表,请考虑将其重写为算术问题,其中: +在成对的数字之间插入一个加号(),这些数字从左到右递增(也就是从列表的开头到结尾)。 -在从左到右递减的数字对之间插入一个减号()。 *在成对的数字对之间插入一个乘号()。 换一种说法:if ,if 和if a,b会成为任何子列表。a+ba<ba-ba>ba*ba==b 例如清单 [12, 0, 7, 7, 29, 10, 2, 2, 1] 将成为表达 12 - 0 + 7*7 + 29 - 10 - 2*2 - 1 结果为 75。 编写一个包含此类列表并对其进行评估,打印或返回结果的程序或函数。 操作顺序很重要。乘法应该在任何加法或减法之前完成。 如果输入列表中有一个数字,那应该是它的计算结果。例如[64]应该给64。 使用eval或exec或类似结构是允许的。 以下是一些其他示例: [list] expression value [0] 0 0 [1] 1 1 [78557] 78557 …

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.