编程拼图和代码高尔夫

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

29
哥伦比亚函数逆
让我们定义一个序列:n位求和序列(n-DSS)是一个以n开头的序列。如果最后一个数字是k,那么下一个数字是k + digit-sum(k)。以下是前几个n-DSS: 1-DSS: 1, 2, 4, 8, 16, 23, 28, 38, 49, 62, 70... 2-DSS: 2, 4, 8, 16, 23, 28, 38, 49, 62, 70, 77... 3-DSS: 3, 6, 12, 15, 21, 24, 30, 33, 39, 51, 57... 4-DSS: 4, 8, 16, 23, 28, 38, 49, 62, 70, 77, …

24
输出超级马里奥图像
这是罗谷OJ的问题。我决定将其发布在这里,因为在罗古OJ上,包括我和我的朋友在内的许多人都对如何在最少的字符范围内解决此问题感兴趣。 您的任务是输出以下ASCII文字: ************ ####....#. #..###.....##.... ###.......###### ### ### ........... #...# #...# ##*####### #.#.# #.#.# ####*******###### #.#.# #.#.# ...#***.****.*###.... #...# #...# ....**********##..... ### ### ....**** *****.... #### #### ###### ###### ############################################################## #...#......#.##...#......#.##...#......#.##------------------# ###########################################------------------# #..#....#....##..#....#....##..#....#....##################### ########################################## #----------# #.....#......##.....#......##.....#......# #----------# ########################################## #----------# #.#..#....#..##.#..#....#..##.#..#....#..# #----------# ########################################## ############ 这是代码高尔夫球,因此最短的程序为准。

8
打高尔夫球的Flak整型
整数很难用Brain-Flak表示。有8个运算子: () Evaluates to 1, but does not push anything on any stack [] Evaluates to an indeterminate value for the purposes of this question {} Removes the top of the stack and evaluates to it <> Switches to or back from the alternate stack and evaluates to zero (foo) …

9
“您必须建造更多的塔!”
介绍 在策略游戏《星际争霸2》中,有三个“种族”可供选择:人族,虫族和神族。在这一挑战中,我们将重点关注神族和标志性短语“您必须建造更多的塔!” 当您用尽兵力建立军队时,就会显示此信息。因此,要帮助Starcraft社区,您必须编写一个程序或函数来告诉玩家他们到底需要多少个挂架。 挑战 您将得到一个字符串输入,该字符串由一个整数N和以空格分隔的单位列表组成。N将始终为零或正数,并且单位列表将始终具有一个或多个有效单位。N代表玩家当前拥有的塔架数量。您的工作是计算玩家所拥有的塔架数量是否足以构建单位。你的程序或函数必须输出/返回truthy值,如果有足够的供应,或者如果没有足够的供应,你必须输出You must construct ZZZ additional pylons哪里ZZZ是建设单位需要挂架的量。请注意,pylon(s)在需要时必须为复数,而在不需要时为(...1 additional pylon!,...2 additional pylons!),则不能为复数。 神族单位和供应成本 这是所有单位及其相应供应成本的列表。挂架额外提供8个电源。 Unit Supply Cost Probe 1 Zealot 2 Sentry 2 Stalker 2 HighTemplar 2 DarkTemplar 2 Immortal 4 Colossus 6 Archon 4 Observer 1 WarpPrism 2 Phoenix 2 MothershipCore 2 VoidRay 4 Oracle 3 Tempest …

20
吸血鬼兼容性
关于吸血鬼的鲜为人知的事实是,他们必须喝具有兼容的供血者血型的受害者的血液。吸血鬼的相容性矩阵与常规红细胞供体/受体矩阵相同。可以通过以下美国红十字会表格进行总结 Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- everyone O- B- B+, B-, AB+, AB- …

9
APL高尔夫技巧
我最近发起了一场代码高尔夫挑战赛,看来胜利者是GolfScript(惊喜,惊喜!)。有趣的是,还有另一个非常强大的竞争对手,有机会赢得GolfScript。它的名字叫APL。我在这里看到了许多用APL编写的答案。看来这种语言对于代码打高尔夫球相当有效,因此我决定询问您对APL程序了解的任何代码打高尔夫球技巧。随时发布一些代码示例。看到实际的语言通常非常有趣。
28 code-golf  tips  apl 

10
玩混沌游戏
该混沌游戏是产生分形的简单方法。给定起点,长度比r和一组2D点,请重复执行以下操作: 从一组要点中,随机(均匀)选择一个。 使用r和1-r作为权重对该点和最后绘制的点(或起点)进行平均(即r = 0表示获得起点,r = 1表示获得随机点,r = 0.5表示您在一半之间得到点。) 绘制结果点。 例如,如果您选取了一个等边三角形的顶点且r = 0.5,则绘制的点将绘制出一个Sierpinski三角形: 在Wikipedia上找到的图片 您要编写一个“玩”混沌游戏以创建分形的程序或函数。 输入项 您可以编写程序或函数,并通过ARGV,STDIN或函数参数接受以下输入: 要绘制的点数。 起始坐标(也必须绘制!)。 区间[0,1]中的平均权重r。 点列表供您选择。 输出量 您可以在屏幕上渲染或写入图像文件。如果对结果进行栅格化,则每侧至少需要600像素,所有点都必须在画布上,并且点的图像水平和垂直范围的至少75%必须用于点(这是为了避免用一个黑色像素回答“它实际上已经缩小了”)。的X和ÿ轴必须在相同的比例(即从(0,0行)到(1,1)必须处于45度角),并在混乱游戏绘制各点必须表示为单个像素(如果您的绘图方法使该点抗锯齿,则该点可能会分布在2x2像素上)。 颜色是您的选择,但是您至少需要两种可区分的颜色:一种用于背景,另一种用于在混乱游戏中绘制的点。您可能但不必绘制输入点。 请在答案中包括三个有趣的示例输出。 计分 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 编辑:您不再需要绘制输入点,因为它们无论如何都不会作为单个像素真正可见。

30
更轻松的通信意味着更快的编码意味着更少的编码器意味着……
我父亲是一个非常出色的APL 专家,曾教过我APL的所有基础知识(以及更多),五年前的这一天就去世了。在准备APL 50年的过程中,我发现了这封专利信函(为不读丹麦语的人提供了便利),以作为手写徽标。它解释了APL从未赢得大量用户的主要原因-当然也适用于该社区所有令人惊叹的高尔夫语言的原因: 3497/77要求 1977年8月29 日下午13点 工程咨询公司Henri Brudzewsky,位于索堡的Mindevej 28, 第9类,包括计算机,尤其是APL编码的计算机, 第42类: IT服务代理公司,尤其是在使用APL编码的计算机期间。 任务 产生无重复EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS 行的文本的无限重复输出。您可以以EASIER或FASTER或开头文本FEWER。

30
大写字母与小写字母的比率
在这个挑战中,您和您的朋友正在争论哪种情况更好,大写还是小写?为了找出答案,您编写了一个程序来为您执行此操作。 由于esolang会吓your您的朋友,而冗长的代码会吓you您,因此您的代码将需要尽可能短。 例子 PrOgRaMiNgPuZzLeS & CoDe GoLf 0.52 uppercase DowNGoAT RiGHtGoAt LeFTGoat UpGoAT 0.58 uppercase Foo BaR Baz 0.56 lowercase 技术指标 输入将仅包含ASCII字符。所有非字母字符都应忽略。每个案例至少要有1个字符 输出应该是字母字符总数中出现频率最高的情况。它应该是一个精确到至少 2个小数位的小数。如果大写字母出现得更频繁,则输出应以uppercase或结束lowercase。 永远不会有相同数量的大写和小写字符。
28 code-golf  string 

4
黑帽在哪里?
挑战 编写代码,给定一个来自随机xkcd漫画的面板图像,如果Blackhat出现在漫画中,则返回真实值;否则返回falsey。 谁是黑帽? Blackhat是给戴着黑帽子的xkcd漫画中的角色赋予的非正式名称: 取自Blackhat的Explain xkcd页面 Blackhat的帽子始终是直边的,黑色的,外观与上图中的相同。 其他角色可能也有帽子和头发,但没有一个人会戴着黑色和直边的帽子。 输入值 您可以通过STDIN以任何方式输入图像,无论是图像的路径还是字节。您不需要将URL作为输入。 规则 禁止对答案进行硬编码,但是不胜感激。 您无权访问互联网以获得答案。 例子 所有图片均来自https://xkcd.com中的图片 面板中有Blackhat(返回truthy) 黑帽不在面板中(返回falsey) 测试电池 包含Blackhat的20个图像可以在这里找到:https : //beta-decay.github.io/blackhat.zip 可以在此处找到不包含Blackhat的20张图像:https://beta-decay.github.io/no_blackhat.zip 如果要使用更多图像来测试程序(以训练神秘的测试用例),可以在这里找到Blackhat的所有外观列表:http://www.explainxkcd.com/wiki/index.php/Category: Comics_featuring_Black_Hat 获奖 该程序可以正确识别Blackhat是否在漫画中占大多数。标头应包括分数。 在抢七的情况下,捆绑的程序将获得“神秘”图像(即,只有我知道的图像)。确定最正确的代码将赢得平局。 神秘的图像将与分数一同显示。 注意: Randall的名字似乎是Hat Guy。我更喜欢Blackhat。

4
包含所有自由n-氨基酸的平面的最小区域
在Math Stack Exchange上,我问了一个有关可以包含所有自由n-ominos的最小区域的问题。 一旦我有更多的用语,我想将此序列添加到整数序列在线百科全书中。 例 九个单元格区域是平面的最小子集,可以包含所有十二个自由的5个氨基酸,如下所示。(免费的多米诺骨牌可以旋转和翻转。) (十二个单元格的区域是平面的最小子集,可以包含所有35个自由的6个氨基酸。) 挑战 计算平面中可以包含所有n-氨基酸作为n的函数的最小范围的上限。 这样的表开始: n | size --+------- 1 | 1* 2 | 2* 3 | 4* 4 | 6* 5 | 9* 6 | 12* 7 | 37 8 | 50 9 | 65 *These values are the smallest possible. 提交示例 1-omino: 1 …

12
翻转煎饼
在煎饼分类中,唯一允许的操作是反转序列中某些前缀的元素。或者,考虑一下一叠煎饼:我们将锅铲插入堆栈中的某个位置,然后将所有煎饼翻转到锅铲上方。 例如,6 5 4 1 2 3可以通过首先翻转第一个6元素(整个序列),产生中间结果3 2 1 4 5 6,然后翻转第一个3元素,得出来对序列进行排序1 2 3 4 5 6。 由于只有一个操作,因此整个排序过程可以由一系列整数描述,其中每个整数都是要包含pr flip的元素/煎饼的数量。对于上面的示例,排序顺序为6 3。 另一个例子:4 2 3 1可以用排序4 2 3 2。这是中间结果: 4 2 3 1 flip 4: 1 3 2 4 flip 2: 3 1 2 4 flip 3: 2 1 3 4 flip …

3
重箱堆叠
您有一堆沉重的箱子,并且希望将它们堆叠在尽可能少的堆叠中。问题是您不能在一个盒子中堆放更多的盒子,因此不能容纳更多的盒子,因此较重的盒子必须放在盒子的底部。 挑战 输入:整箱重量列表,以千克为单位。 输出:描述盒子堆栈的列表列表。这必须使用最少数量的堆栈作为输入。要成为有效的堆栈,堆栈中每个盒子的重量必须大于或等于其上方所有盒子的重量之和。 有效堆栈的示例 (按从下到上的顺序) [3] [1,1] [3,2,1] [4,2,1,1] [27、17、6、3、1] [33,32,1] [999,888,99,11,1] 无效堆栈的示例 (按从下到上的顺序) [1,2] [3,3,3] [5、5、1] [999、888、777] [4、3、2] [4321、3000、1234、321] 示例测试用例 1个 IN: [1, 2, 3, 4, 5, 6, 9, 12] OUT: [[12, 6, 3, 2, 1], [9, 5, 4]] 2 IN: [87, 432, 9999, 1234, 3030] OUT: [[9999, …

13
有效的羽毛球得分?
介绍: 我看到现在只有另一个与羽毛球有关的挑战。自从我自己打羽毛球以来(至今已有13年),我认为自己会增加一些与羽毛球有关的挑战。这里是第一个: 挑战: 输入:两个整数 输出:您自己选择的三个不同且唯一的输出之一。表示输入的内容是有效的羽毛球得分,并且该组以获胜者结束;一个表示输入的羽毛球得分有效并且该集合仍在进行中;表示输入的羽毛球得分无效。 使用羽毛球时,两个(两对)球员都从0分开始,并且当两个(两对)球员中的一个得分达到21,且相差至少2分,最高为30-29时,您停止。 因此,这些都是可能的输入对(以任意顺序),表明其是有效的羽毛球得分,并且该组已经结束: [[0,21],[1,21],[2,21],[3,21],[4,21],[5,21],[6,21],[7,21],[8,21],[9,21],[10,21],[11,21],[12,21],[13,21],[14,21],[15,21],[16,21],[17,21],[18,21],[19,21],[20,22],[21,23],[22,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,30]] 这些都是可能的输入对(以任意顺序),表明它是有效的羽毛球得分,但该组仍在起作用: [[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7],[1,8],[1,9],[1,10],[1,11],[1,12],[1,13],[1,14],[1,15],[1,16],[1,17],[1,18],[1,19],[1,20],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[2,8],[2,9],[2,10],[2,11],[2,12],[2,13],[2,14],[2,15],[2,16],[2,17],[2,18],[2,19],[2,20],[3,3],[3,4],[3,5],[3,6],[3,7],[3,8],[3,9],[3,10],[3,11],[3,12],[3,13],[3,14],[3,15],[3,16],[3,17],[3,18],[3,19],[3,20],[4,4],[4,5],[4,6],[4,7],[4,8],[4,9],[4,10],[4,11],[4,12],[4,13],[4,14],[4,15],[4,16],[4,17],[4,18],[4,19],[4,20],[5,5],[5,6],[5,7],[5,8],[5,9],[5,10],[5,11],[5,12],[5,13],[5,14],[5,15],[5,16],[5,17],[5,18],[5,19],[5,20],[6,6],[6,7],[6,8],[6,9],[6,10],[6,11],[6,12],[6,13],[6,14],[6,15],[6,16],[6,17],[6,18],[6,19],[6,20],[7,7],[7,8],[7,9],[7,10],[7,11],[7,12],[7,13],[7,14],[7,15],[7,16],[7,17],[7,18],[7,19],[7,20],[8,8],[8,9],[8,10],[8,11],[8,12],[8,13],[8,14],[8,15],[8,16],[8,17],[8,18],[8,19],[8,20],[9,9],[9,10],[9,11],[9,12],[9,13],[9,14],[9,15],[9,16],[9,17],[9,18],[9,19],[9,20],[10,10],[10,11],[10,12],[10,13],[10,14],[10,15],[10,16],[10,17],[10,18],[10,19],[10,20],[11,11],[11,12],[11,13],[11,14],[11,15],[11,16],[11,17],[11,18],[11,19],[11,20],[12,12],[12,13],[12,14],[12,15],[12,16],[12,17],[12,18],[12,19],[12,20],[13,13],[13,14],[13,15],[13,16],[13,17],[13,18],[13,19],[13,20],[14,14],[14,15],[14,16],[14,17],[14,18],[14,19],[14,20],[15,15],[15,16],[15,17],[15,18],[15,19],[15,20],[16,16],[16,17],[16,18],[16,19],[16,20],[17,17],[17,18],[17,19],[17,20],[18,18],[18,19],[18,20],[19,19],[19,20],[20,20],[20,21],[21,21],[21,22],[22,22],[22,23],[23,23],[23,24],[24,24],[24,25],[25,25],[25,26],[26,26],[26,27],[27,27],[27,28],[28,28],[28,29],[29,29]] 任何其他整数对都将是无效的羽毛球得分。 挑战规则: I / O是灵活的,因此: 您可以将输入作为两个数字的列表。通过STDIN或函数参数将两个数字分开;两根弦;等等 输出将是您自己选择的三个不同且唯一的值。可以是整数(即[0,1,2],[1,2,3],[-1,0,1]等); 可以是布尔值(即[true,false,undefined/null/empty]);可以是字符/字符串(即["valid & ended","valid","invalid"]);等等 请指定您在答案中使用的I / O! 允许您按照从最低到最高的顺序对输入整数进行排序,反之亦然。 输入整数可以为负,在这种情况下,它们当然是无效的。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 这些测试用例有效,并且设置已经结束: 0 21 12 21 21 23 28 30 29 30 这些测试用例有效,但仍在使用中: 0 …

13
给我一个最小的魔法总和
保持简短的挑战。 您会得到4个数字:p1,p2,p3和p4。 数字的魔术总和定义如下: magic_sum = |p1 - p2| + |p2 - p3| + |p3 - p4| + |p4 - p1| 仅允许更改以上整数值之一(p1,p2,p3或p4)。您需要更改该值,以使这些值的神奇总和达到最小值。 例如: p1,p2,p3,p4 = 17,-6、15、33。在这种情况下,魔法总和的值为78。 您可以在此处将-6更改为16,魔法总和的值将变为36,这是可达到的最小值。 请记住,数字可以是正整数或负整数。 这是代码高尔夫球,因此代码胜利中最少的字节。布朗尼指出在娱乐语言上使用实用语言。愿4日与您同在。 重申: 样品1 输入1 17 -6 15 33 输出1 36 说明1 -6可以替换为16,这使我们可以达到的最小魔术总和。 样品2 输入2 10 10 10 10 输出2 0 or 2 两者都可以接受 …

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.