编程拼图和代码高尔夫

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

25
高尔夫十项全能的第一个代码[关闭]
任务 所有竞争对手都试图解决以下10个任务列表: 数学 从输入中读取正整数n并返回前n个非负整数的立方和。 对于输入1,应该返回0。 当且仅当n是梅森素数时,才从输入读取正整数n并返回真实值。 从输入读取n个整数的非空列表,并返回它们的中值。 如果n为偶数,则使用两个中间值中的较小者。 例如,的中位数[1 4 3 2]为2。 从输入中读取整数(正,负或0)或以10为底或一进制的字符串表示形式,并以negabinary返回其数字,且不带前导零(输入0除外)。 可以用任何方便的方式(数字,数组,字符串等)格式化输出。 串 返回pneumonoultramicroscopicsilicovolcanoconiosis。 检查当前日期,并Happy New Year!根据公历返回合适的日期。 伪随机地从Unicode块CJK Unified Ideographs Extension-A(U + 3400 – U + 4DB5)中选择64个唯一分配的代码点,然后返回相应字符的字符串。 所有可能的字符串应具有相同的被选择概率。 当且仅当第一个字符串的字符形成第二个字符串的子序列时,才从输入中读取两个可打印的ASCII字符串,并返回真实值。 例如,abc,axbxc应该返回truthy和bac,axbxc应该返回falsy。 数组操作 从输入中读取一个多维的矩形整数数组和一个整数n,并返回修改后的数组,其中所有整数均乘以n。 艺术 从输入中读取一个非负整数n,并返回n个火车货车的链,如下所示。 n = 3的示例输出: ______ ______ ______ | | | | | | ()--() ~ …

16
主脑马电池钉书针
目的 给定三个单词的密码列表,将其全部破解。每次您猜测时,都会得到Mastermind风格的线索,其中描述了与密码匹配的字符数以及正确位置的字符数。目的是最大程度地减少所有测试用例的猜测总数。 密码短语 从系统的默认单词列表中,我随机选择了10,000个不同的单词来制作此挑战的字典。所有单词a-z仅包含。这本词典可以在这里找到(raw)。 从这本词典中,我生成了1000个密码短语,每个短语由三个以空格分隔的随机单词组成(apple jacks fever例如)。各个单词可以在每个密码短语(hungry hungry hippos)中重用。您可以在此处找到密码短语的列表(raw),每行一个。 您的程序可以根据需要使用/分析字典文件。您无法分析密码短语以针对此特定列表进行优化。给定不同的词组列表,您的算法仍然可以使用 猜测 为了进行猜测,您将字符串提交给检查器。它应该只返回: 密码中字符串中的字符数(位置不正确) 正确位置的字符数 如果您的字符串是完美匹配,则可能会输出一些表明该字符串的信息(mine -1用于第一个值)。 例如,如果密码是the big cat且您猜到了tiger baby mauling,则检查程序应返回7,1。ige<space>ba<space>两个字符串中有7个字符(),但位置不同,而两个字符串中的1个(t)位于相同位置。请注意,空格很重要。 我已经用Java编写了一个示例函数(阅读:未优化),但是只要提供所需信息,就可以自己编写。 int[] guess(String in){ int chars=0, positions=0; String pw = currentPassword; // set elsewhere, contains current pass for(int i=0;i<in.length()&&i<pw.length();i++){ if(in.charAt(i)==pw.charAt(i)) positions++; } if(positions == pw.length() && pw.length()==in.length()) return new …

30
打印一张笑脸
要求 为了挑战,让我们定义一个单位: 单位定义为组成绘制面孔的网格的任何点(屏幕的像素,ASCII艺术的字符等)。 脸部的最低要求是: 笑脸的形状类​​似于任何半径的圆(不一定是完美的)。两只眼睛中的每只眼睛必须至少有1个单位,而嘴巴必须至少有2个单位。眼睛和嘴巴都应该在面部形状内。可以根据需要调整嘴巴的方向(快乐,悲伤,冷漠等)。 这是输出示例: 0 0 0 . . . 0 . . 0 . o o . 0 --- 0 . \_/ . 0 0 0 . . . 目标 当然,主要目标是想出尽可能短的代码,但是艺术也很重要。 优胜者 至少在接下来的5天内,根据用户的投票量选出获胜者。

25
在C ++中打高尔夫球的技巧
您在C ++中打高尔夫球有哪些一般技巧?我正在寻找可以应用于一般高尔夫问题代码的想法,这些想法至少在某种程度上是C ++特有的(例如,“删除注释”不是答案)。请为每个答案发布一个提示。
48 code-golf  tips  c++ 

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

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.