编程拼图和代码高尔夫

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

9
是名词吗?
给定一个字符串作为输入,请确定它是否为名词。 您会在1000个最常用的英语单词中获得打分,具体取决于是否正确将其标记为名词。 正确地将大多数单词(不超过50个字节)分类的程序或函数将获胜。 名词 名词是通常代表事物的单词。它变得更加复杂,但这是基本思想。 在一个单词可能是名词或其他词性的情况下,我将其归类为名词,即使这种用法很少见。或实际上,我让这个网站替我做。 您将获得评分的单词是这1000个常见单词,它们来自简单的Wikipedia,其中添加了“两个”和“一次”。其中,有586个名词,有414个非名词。您可以在此处找到所有三个列表。请注意,所有这些输入均为小写。这些清单是最终清单-请勿尝试争论语法。 如果您的程序输出真实信息,则将其视为正确在作为名词的输入中结果,而在非名词的输入中结果,。 细微之处: 程序必须具有确定性的输出。如果您想使用随机性,则将其作为种子。程序不得使用内置名词列表或其他内置词性功能。 例子: a: noun act: noun active: noun about: non-noun above: non-noun across: non-noun 请在回答中指出程序的成功率。以成功率最高的最多50个字节的程序或功能为准。如果出现平局,则最低字节数将确定获胜者。祝好运!

12
多云吗?
挑战 给定天空的图像,您必须以oktas输出云量。提供的图像将是图像文件(取决于您的类型),输出应为STDOUT。 奥克塔斯 在气象学中,okta是用于描述任何给定位置(如气象站)的云量的度量单位。根据云层覆盖了八分之几的天空来估算天空条件,范围从0 oktas(完全晴朗的天空)到8 oktas(完全多云)。 天空永远是中午左右的照片(所以,蓝天,不是红色/夜空)。 云的颜色将始终是遵循以下模式的颜色: #ABCDEF 哪里AB >= C0,CD >= C0和EF >= C0。 或者,在RGB中: (A, B, C) 哪里A >= 192,B >= 192和C >= 192。 以下是与Oktas相关的百分比覆盖率: 0% - 0 oktas 12.5% - 1 okta 25% - 2 oktas 37.5% - 3 oktas 50% - 4 oktas 62.5% - …

15
无限动力塔
挑战 非常简单,给定输入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将永远收敛。 负数和复数应该能够处理 这是代码高尔夫球,因此最低字节为准! 您的答案至少应正确到小数点后5位 例子 Input >> Output 1.4 >> 1.8866633062463325 1.414 >> 1.9980364085457847 [Square root of 2] >> 2 -1 >> -1 i >> 0.4382829367270323 + 0.3605924718713857i 1 >> 1 0.5 >> 0.641185744504986 0.333... >> 0.5478086216540975 1 …
22 code-golf  math 

5
代码Golfinator-3000
正如大家都知道,加入inator-3000任何名词结束使得它的方式更冷。但是还有什么可以使单词更酷呢? 给定一个ASCII字符串作为输入,输出该单词的简洁性。 计算凉爽度 有4个元素可以计算单词的清爽度。 这个词本身。基本分数是大写字母的数量乘以1000 结束号码。单词末尾的数字(例如burninator- 3000)被添加到基本分数中,但是如果该数字超过4个数字,则表示它们过于贪婪,因此应忽略该数字。 连接器。结束编号前的空格加1000,而连字符加2000,则任何其他符号或完全没有符号无效。 后缀。如果单词以结尾ator,则将最终分数加倍。如果结尾为inator,则将分数提高三倍。这些不区分大小写。 因此例如Burninator-3000可以计算如下: 1 Capital letter - Base Score: 1000 (1000(base) + 3000(number) + 2000(hyphen)) * 3(suffix) = 18000 测试用例 Burninator-3000 -> 18000 Burnator3000 -> 8000 BurNinator 100 -> 9300 BuRnInAtOr-7253 -> 42759 burn -> 0 burn- -> 0 bUrn-1 -> 3001 inator-7 …
22 code-golf  string 

27
排序差异列表
整数列表的差异列表是连续成员的列表差异。 例如,差异列表 1, 3, 2 ,4 是 2, -1, 2 您的任务是将差异列表作为输入,并输出对原始列表进行排序后的差异列表的外观。 例如差异列表 2, 1, -2, -1 可能代表清单 2 4 5 3 2 排序时是 2 2 3 4 5 其中有一个差异列表 0 1 1 1 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。

6
科特林打高尔夫球的秘诀
考虑到Google最近宣布Kotlin正式支持Android开发,我认为现在应该就此相对较新的JVM语言向社区调查一些很棒的高尔夫技巧。 Kotlin在JVM兄弟中包括独特的功能组合,这使其对于打高尔夫球具有潜在的吸引力: 操作符重载 local,infix和static扩展函数 聪明的演员 Groovy样式的类型安全的构建器 输入别名 范围 广泛的功能性收藏包 脚本支持 那么,如何从Kotlin程序中挤出最后几个字节?请给每个答案一个提示。
22 code-golf  tips 

12
给我上杆
可以说您的工作是给杆子上漆,客户要求您给杆子涂上4个红色部分和3个黄色部分。您可以很容易地做到这一点,如下所示: r y r y r y r 仅有黄色和红色条纹。现在,假设您的客户要您用2个红色部分,2个黄色部分和1个绿色部分绘制一个杆。有两种方法可以画杆子 g y r y r y g r y r y r g y r y r y g r y r y r g g r y r y r g y r y r y g r y r …

3
Scrappers v0.1:佣工程序员
在一个荒芜,饱受战争摧残的世界中,城市被暴徒和小偷所淹没,文明以小型,孤立的工业合作社的形式重塑了自己,散布在整个先前无人居住的地区。这些社区的存在依赖于称为““子”的雇佣军团队,他们在未驯服的领土上寻找有价值的材料出售给合作社。随着这些材料变得越来越稀缺,报废已变得越来越困难和危险。脆弱的人类工人大多已被称为“机器人”的远程机器人替身所代替,典型的雇佣军更可能是熟练的程序员,而不是武装的焊工。随着人类报废的存在减少,雇佣军之间的相互尊重也减少了。机器人不仅具有收集废料的能力,而且还可以防御废品,在某些情况下,可以用武力将其收起。Bot程序员不遗余力地制定新的策略,以超越竞争对手的废品,从而导致攻击性越来越强的机器人,这对于在社区墙外冒险的人们来说是另一种危险。 (是的,徽标被搞笑地裁剪了) 欢迎使用Scrappers! 这是Scrappers的早期版本,其中未实施废料收集和工厂。从根本上说,这是“向上射击”。 您是一名雇佣兵程序员,其任务是创建一个程序来远程引导您的机器人,以击败竞争对手的报废团队。您的机器人是类似于蜘蛛的机器,其核心是电力和盾构发电机,周围环绕着许多配有抓取,切割和攻击工具的附件。发电机每刻可产生12个功率单位(pu)(刮板的时间单位)。您可以控制这种力量在机器人的三个主要需求之间的分配方式:机芯,护盾和火力。 爬虫机器人是非常敏捷的机器,可以轻松地在遇到的任何障碍物上方,下方和周围移动。因此,冲突不是程序需要考虑的事情。您可以自由分配机器人可用的全部12pu或全部12pu,只要您进行整数交易即可。将0pu分配给机器人的移动功能会使它无法移动。分配2pu将使机器人能够在每个滴答声中移动2个距离单位(du),5pu将导致5du / tick,11pu将导致11du / tick,依此类推。 机器人的盾牌生成器会在他们的身体周围投射出偏转能量的气泡。盾牌在弹出之前最多可以偏转1点伤害,从而使您的机器人处于暴露状态,直到它的盾牌生成器生成足够的功率以将盾牌重新固定到位。您可以自由分配所有,部分或不分配给机器人的12pu作为其屏蔽。将0pu分配给机器人的防护罩意味着它永远不会生成防护罩。分配2pu可使机器人在12个滴答中生成2个新盾,或者每6个滴答生成一次。5pu将导致每12个滴答中有5个更新盾牌,依此类推。 通过在其焊接激光器中建立电荷,您的机器人可以在短距离内以相当的精度发射破坏性光束。就像生成盾牌一样,您的机器人的发射速度取决于分配给其激光器的功率。将0pu分配给机器人的激光器意味着它永远不会触发。分配2pu可使机器人在每12个滴答声中触发2个,依此类推。机器人的激光将一直传播,直到遇到物体或消失为止,因此请注意友善的射击。尽管您的机器人非常准确,但它们并不完美。您应该期望+/- 2.5度的精度差异。随着激光束的传播,其粒子逐渐被大气偏转,直到激光束在足够的距离内变得无害为止。激光在空白点范​​围内造成1点伤害,每行进的机器人长度造成的伤害降低2.5%。 爬虫程序机器人具有足够的自治能力来处理基本功能,但是依靠您(他们的程序员)来使它们作为一个整体有用。作为程序员,您可以为每个单独的机器人发出以下命令: 移动:指定机器人将朝其移动的坐标。 目标:确定一种在功率分配允许时瞄准并开火的机器人。 力量:在机芯,护盾和火力之间重新分配力量。 技术游戏详情 您需要熟悉三个程序。该游戏引擎是重提升,并提供了TCP API玩家程序连接到。播放器程序就是您要编写的程序,这里我提供了一些带有二进制文件的示例。最后,渲染器处理游戏引擎的输出以产生战斗的GIF。 游戏引擎 您可以从此处下载游戏引擎。启动游戏后,它将开始在端口50000(当前不可配置)上侦听玩家的连接。一旦收到两个玩家连接,它将向玩家发送READY消息并开始游戏。播放器程序通过TCP API将命令发送到游戏。游戏结束后,将创建一个名为scrappers.json的JSON文件(目前也无法配置)。这就是渲染器用来创建游戏GIF的东西。 TCP API 播放器程序和游戏引擎通过TCP连接来回传递第四个换行符终止的JSON字符串进行通信。可以发送或接收的五种不同的JSON消息。 准备好消息 READY消息从游戏发送到播放器程序,并且仅发送一次。该消息告诉玩家程序其玩家ID(PID)是什么,并提供游戏中所有机器人的列表。PID是确定哪些机器人对敌人友好的唯一方法。有关以下机器人字段的更多信息。 { "Type":"READY", // Message type "PID":1, // Player ID "Bots":[ // Array of bots { "Type":"BOT", "PID":1, "BID":1, "X":-592, ... }, ... …

20
是超级素数吗?
背景 一个超贷是一个素数,其指数中的所有质数的列表也是素数。该序列如下所示: 3、5、11、17、31、41、59、67、83、109、127、157、179、191,... 这是OEIS中的序列A006450。 挑战 给定一个正整数,确定它是否是超质数。 测试用例 2:假 3:正确 4:假 5:是的 7:假 11:是 13:假 17:是 709:是的 851:错误 991:是的 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。

29
折叠相邻重复项
挑战 给定一个整数列表,请在重复删除所有成对的相邻相等项之后返回这些整数的列表。 请注意,如果您有一个相等的奇数长度游程,则其中一个将保留,而不是成对的一部分。 例: [0, 0, 0, 1, 2, 4, 4, 2, 1, 1, 0] 首先,你应该删除0, 0,4, 4以及1, 1获得: [0, 1, 2, 2, 0] 现在,您应该删除2, 2: [0, 1, 0] 这是最终结果。 测试用例 []-> [] [1]-> [1] [1,1]-> [] [1,2]-> [1,2] [11,11,11]-> [11] [1,22,1]-> [1,22,1] [-31,46,-31,46]-> [-31,46,-31,46] [1、0、0、1]-> [] [5、3、10、10、5]-> [5、3、5] [5、3、3、3、5]-> …

14
打印包含第n个斐波那契数的第n个斐波那契数!
挑战 您必须编写一个程序,以正整数n作为输入,并输出n包含n第Fib#号作为子字符串的第Fibonacci号(在整个过程中简称为Fib#)。出于此挑战的目的,斐波那契序列以开头1。 以下是一些示例,您可以将它们用作测试用例,或者用作阐明挑战的示例(对于后者,请在下面留下注释,说明您不清楚的地方)。 n=1 Fib#s: 1 ^1 1st Fib# that contains a 1 (1st Fib#) Output: 1 n=2 Fib#s: 1, 1 ^1 ^2 2nd Fib# that contains a 1 (2nd Fib#) Output: 1 n=3 Fib#s: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ^1 ^2 …

19
犯罪现场调查:我的世界物品
我的世界1.12将于明天发布,让我们一起庆祝吧! 编写包含非负整数N的代码,该整数表示Minecraft中某物的项数。以对玩家更有用的方式输出,给定等于N的箱子,筹码和物品数量。使用格式 XcYsZi 哪里 X 是您可以完全填满N个物品的箱子数, Y 是您可以在填满箱子后剩余的物品可以堆满的堆叠数, Z 装满箱子和箱子后剩余的物品数量。 注意: 一叠可容纳64个物品。(我们将忽略堆叠为16或不堆叠的项目。) 胸部可容纳27叠。(这些是单箱,而不是双箱。) 因此,如果Y大于26或Z大于63则毫无意义。 需要注意的是,如果格式为零,则不会打印该术语。 因此,例如,如果Y为零X和Z非零,则格式将类似于XcZi。 同样,如果Y和Z为零和X非零,则格式为Xc。 这里的例外是当N为零时。然后0i是输出而不是空字符串。 您可以假设所有N个项目都是同一类型,因此都是可堆叠的。 您可能不会输出三个数字的列表或元组。您必须以正确的“ csi”符号给出一个字符串,并且该字符串不能有空格或逗号。 作为参考,这是一个完全堆满物品的箱子: 测试用例 in -> out 0 -> 0i 1 -> 1i 2 -> 2i 62 -> 62i 63 -> 63i 64 -> 1s 65 -> 1s1i 66 -> 1s2i …

18
折成三角形
给定一个长度可被4整除的字符串,请制作一个三角形,如下所示。 如果字符串是abcdefghijkl,则三角形将是: a b l c k defghij 如果字符串是iamastringwithalengthdivisiblebyfour,则三角形将是: i a r m u a o s f t y r b i e n l gwithalengthdivisib 如果字符串是thisrepresentationisnotatriangle,则三角形将是: t h e i l s g r n e a p i r r esentationisnotat 笔记 该字符串仅包含从a到的字符z。 只要形状未损坏,就允许使用前导/尾随空格和换行符。 允许使用字符串列表作为输出。 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

1
展开柯克曼的女学生问题
对于那些不熟悉的人,柯克曼的女学生问题如下: 一所学校的15位年轻女士连续三天并排走出家门,连续7天:要求每天安排她们,以便没有两个人能并排走两次。 我们可以将其视为嵌套的3 x 5列表(或矩阵): [[a,b,c] [d,e,f] [g,h,i] [j,k,l] [m,n,o]] 本质上,原始问题的目标是找出安排上述矩阵的7种不同方式,以使两个字母永远不会共享同一行。从MathWorld(上面链接)中,我们找到了以下解决方案: [[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o] [d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g] [g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n] [j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j] [m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] [f,h,k]] [h,l,m]] 现在,如果有不同数量的女学生怎么办?可能会有第八天吗?†这是我们的挑战。 †在这种情况下,没有††,但不一定是其他数组尺寸 ††我们可以很容易地显示出来,因为它a与其他字母排成一行。 挑战: …

30
最小倍数为9,然后是可选的0
给定一个正整数,找到其最小的正整数倍,它是9的游程,然后是一个可选的0 /^9+0*$/。 例如,如果给定的正整数为2,则返回90,因为90是2的正整数倍,并且是正则表达式匹配的最小整数/^9+0*$/。 测试用例: n f(n) 1 9 2 90 3 9 4 900 5 90 6 90 7 999999 8 9000 9 9 10 90 11 99 12 900 13 999999 14 9999990 15 90 16 90000 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

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.