编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
画圆弧
绘制抛球的抛物线轨迹。 输入是球的初始向上速度,为正整数v。每秒,球向右移动1空间并v垂直移动,然后由于重力而v减小1。所以,向上的速度最终从下台v到0,向下-v,最终下跌回落到其初始高度。 球的位置描绘出抛物线。在水平位置x,其高度为y=x*(2*v+1-x)/2,(0,0)球的初始位置在左下方。 输出球轨迹的ASCII艺术作品,O其所占据的坐标为。输出应该是一条多行文本,而不是随时间变化的路径动画。 输出不应包含前导换行符,并且最多应包含尾随换行符。底线应与屏幕的左边缘齐平,即没有多余的前导空格。尾随空格可以。您可以假定输出线宽适合输出端子。 v = 1 OO O O v = 2 OO O O O O v = 3 OO O O O O O O v = 4 OO O O O O O O O O v = 10 OO O O O O O …

20
总结一下
一个简单但希望不是很琐碎的挑战: 编写一个程序或函数k求和数的乘积n。进一步来说: 输入:两个正整数n和k(或有序整数对等) 输出:所有的正除数的总和n是k整数次方 例如11!= 39916800有六个因数为立方的除数,即1、8、27、64、216和1728。因此,给定输入39916800和3,程序应返回它们的总和2044。 其他测试用例: {40320, 1} -> 159120 {40320, 2} -> 850 {40320, 3} -> 73 {40320, 4} -> 17 {40320, 5} -> 33 {40320, 6} -> 65 {40320, 7} -> 129 {40320, 8} -> 1 {46656, 1} -> 138811 {46656, 2} -> 69700 {46656, 3} -> …

17
隐藏的倒置(警察线程)
这是一个警察和强盗的谜题,可以在这里找到强盗的线索。 您的任务将是两个编写两个程序(或函数),使它们彼此相似,并且一个与另一个相反。这些程序可以接受并输出任意数量的整数或复数。如果选择以数字作为字符点或任何其他合理的方式,则必须在答案中指出自己正在这样做。如果选择限制功能域,则还必须在答案中指出限制域。 然后,您将以答案的形式展示第一个程序,其中隐藏了左反函数供强盗查找。 所示程序必须实现一个内射函数(否则将不可能存在隐藏的答案)。 如果您的答案在一周内没有被破解,则可以显示隐藏的答案并将其标记为安全。安全答案不能被强盗破解,并且可以无限期保持不变。 目标是创建最短的未破解答案(以字节为单位)。 例 您可以显示以下python程序,将其添加到输入中 lambda x:~-x 解决方案可能是: lambda x:-~x 这从输入中减去一个

30
高效计数
当我还是个孩子的时候,想算一算生活中的美元钞票时,我会大声数出: 一,二,三,四,五,六,七,八,九,十; 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十; 21、22、23、24、25 ... 最终我厌倦了念出这些多音节数字。出于数学考虑,我创建了一种更有效的计数方法: 一,二,三,四,五,六,七,八,九,十; 一,二,三,四,五,六,七,八,九,二十; 一,二,三,四,五,六,七,八,九,三十... 如您所见,我只会说出与前一个数字已更改的数字。这还有一个额外的优势,即它比数字的英文名称具有更大的重复性,因此需要较少的脑力来进行计算。 挑战 编写一个程序/函数,该程序接受一个正整数,然后输出/返回我将如何对其进行计数:即,最右边的非零数字和所有尾随的零。 例子 1 1 2 2 10 10 11 1 29 9 30 30 99 9 100 100 119 9 120 20 200 200 409 9 1020 20 不需要完整的测试用例列表。这是OEIS上的A274206。 规则 理论上,您的条目必须适用于所有正整数,而忽略精度和内存问题。 输入和输出必须为十进制。 您可以选择将输入和/或输出作为数字,字符串或数字数组。 输入保证为正整数。您的输入可以为无效输入做任何事情。 这是code-golf,因此以字节为单位的最短代码获胜。
35 code-golf  number 

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] # …

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.