编程拼图和代码高尔夫

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

12
你好,世界!带有半普通字符
你们中的一些人可能知道,将一种语言融入Dennis的精彩在线尝试中!,您好,世界!程序是必需的。最近,丹尼斯提出了一种从网站上加载这些程序的方法。截至2017年7月27日,这是这些程序中使用的字符的JSON pastebin(按频率)。 这些角色中的一些需要爱,因此您的挑战是输出Hello,World!(最好是与此过程有关的语言),仅使用以下指定的字符。这些字符是在10和99(含)时间之间使用的所有字符,以及两个最常见的字符0和,因为我感觉很好。 0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_ 字符的使用应基于其在常规程序中的外观,而不是基于其代码点或字节值。 您必须使用该集合中的至少一个字符,因此长度为0的程序无效。 这是代码高尔夫球,因此最短答案以字节为单位。 JSFiddle检查您的答案是否有效

30
寻找独特的双胞胎
您将获得两个非负整数A和B的数组/列表/向量。您的任务是输出出现在A和B中的最高整数N,并且在A和B中都唯一。 您可以假设至少有一个这样的数字。 允许使用任何合理的输入和输出方法/格式。 这些漏洞是禁止的。 这是代码源代码,因此每种编程语言中最短的代码都会胜出! 测试用例: A,B->输出 [6],[1、6]-> 6 [1、2、3、4],[4、5、6、7]-> 4 [0,73,38,29],[38,29,73,0]-> 73 [1、3、4、6、6、9、9],[8、7、6、3、4、3]-> 4 [2,2,2,6,3,5,8,8],[8,7,5,8]-> 5 [12,19,18,289,19,17],[12,19,18,17,17,289]-> 289 [17,29,39,29,29,39,18],[19,19,18,20,17,18]-> 17 [17,29,39,29,29,39,18,18],[19,19,18,20,17,18]-> 17

30
方形金字塔数
A000330-OEIS 任务 你的任务很简单,生成一个序列,鉴于指数i,在该位置的值是平方之和从0高达i哪里i >= 0。 例: Input: 0 Output: 0 (0^2) Input: 4 Output: 30 (0^2 + 1^2 + 2^2 + 3^2 + 4^2) Input: 5 Output: 55 (0^2 + 1^2 + 2^2 + 3^2 + 4^2 + 5^2) 规格: 您可能不输入任何内容并无限期地输出序列; 您可以输入N并输出Nth序列的元素; 您可以输入N并输出N序列的前几个元素。

14
在TeX / LaTeX中打高尔夫球的技巧
人们在TeX / LaTeX中打高尔夫球有哪些技巧?请为每个答案发布一个提示,每个提示至少在某种程度上特定于TeX / LaTeX。 上下文:我注意到了这个答案,而且TeX / LaTeX没有提示问题,因此我正在创建这个。与TikZ中打高尔夫球的较窄问题提示有些重叠(因为TikZ是TeX / LaTeX之上的特定宏程序包):该问题的答案可能也适用于此,但并非相反。
28 code-golf  tips 

13
是乌龟素吗?
众所周知,乌龟一直沉没下来。但是,它是否也一路下降? 如果数字满足以下条件,则将其视为“乌龟”: 1) It is prime. 2) It is possible to remove a single digit leaving a prime number. 3) Step 2 can be repeated until left with a single digit prime. 例如,239是“龟贷”,因为它可以减少到23然后或者2或3,这两者都是质数。也可以减少到29那时2。151不是乌龟素数,因为它减少为15(不是素数),51(不是素数)或11。11是素数,但只能减少到1,不是。 给定一个正整数,确定它是否是“乌龟素数”。您的输出可以是任何形式,只要它为任何真实或错误值提供相同的输出即可。 测试用例: input -> output 1 -> false 2 -> true 17 -> true 19 -> false …
28 code-golf  primes 

2
将Brainf中的任意大单元归零***
您的任务是编写一段代码,将Brainfuck变体中的当前单元格清零,每个单元格可以包含任意大数值的有符号整数,而不是正常的0到255。 您可以假设当前单元格的左边有l个单元格,而右边的r个单元格最初为零。您的程序只能访问这些l + r +1个单元。代码结束后,应将l + r个额外的单元格保留为零,并将指向当前单元格的指针保留在原始位置。 您不得使用任何输入/输出。 l + r最小的代码获胜。如果有平局,则以最短的代码为准。建议还声明程序的时间复杂度以供参考,其中n是当前单元格中原始整数的绝对值。 有用的工具 您可以使用mbomb007在TIO上使用此解释器来测试此版本中的Brainfuck程序。 您还可以通过廷比在此答案中使用解释器(其他Python答案也可能有效,但我没有测试)。

9
火灾传播模拟器
假设我们有一个像这样的矩阵: 11111 12221 12321 12221 11111 该矩阵代表地形,每个像元代表地形的一部分。每个单元格中的数字表示根据地形的可燃性需要完全燃烧地形的时间(以分钟为单位,如果需要测量单位的话)。如果在任意给定位置(单元)开始起火,则该单元需要先完全燃烧,然后再传播到相邻单元(仅水平和垂直,而不是对角线)。因此,如果在中心位置起火,则火灾需要: 11111 11111 11111 11011 10001 00000 12221 3 m. 12221 2 m. 12021 1 m. 11011 1 m. 00000 1 m. 00000 12321 -----> 12021 -----> 10001 -----> 00000 -----> 00000 -----> 00000 12221 12221 12021 11011 00000 00000 11111 11111 11111 11011 …

30
'abc'和'cba'
您的任务很简单,编写一个代码段,当以一种语言执行时仅输出字符串,'abc'而以另一种语言执行时仅输出字符串'cba'。该程序不应该输入。 这是一个代码高尔夫挑战。

30
三角数!
我们习惯于“平方” n来表示计算n 2。我们也习惯于将“立方” n表示为n 3。话虽这么说,为什么我们也不能将数字三角化? 如何三角化一个数字? 首先,让我们选择一个数字53716。 将其放置在平行四边形上,其边长等于该数字的位数,并且其两侧斜对角放置,如下所示。 53716 53716 53716 53716 53716 现在,我们要Δ,对吗?为此,裁剪不适合直角三角形的边: 5 53 537 5371 53716 取每一行的总和,对于本示例,得出[5, 8, 15, 16, 22]: 5-> 5 53-> 8 537-> 15 5371-> 16 53716-> 22 对列表求和[5, 8, 15, 16, 22],得到66。这是这个数字的三角形! 规格与规则 输入将是一个非负整数n(n≥0,n∈Z)。 您可以采用任何允许的方式输入并提供输出。 输入可以格式化为整数,整数的字符串表示形式或数字列表。 不允许出现默认漏洞。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 更多测试案例 输入->输出 0-> 0 1-> …

1
不受限制的语言
我在此站点上最喜欢的挑战之一是受限源挑战。这些挑战给计算机带来了难以处理的限制,潜在答案的来源必须通过。我非常喜欢这些挑战,一段时间以来,我一直在研究一种旨在赢得这些挑战的高尔夫语言。现在,我想向您提出挑战。您的任务是设计一种语言来解决各种受限的源任务。您将需要设计和实现一种语言,到那时,更改和新添加的内容将不具竞争性,并且所有提交的内容将在受限源挑战的严峻挑战中齐头并进。 计分 在发布挑战之前,我将提供一个要解决的简单挑战列表和一个要遵循的源限制列表。对于挑战和来源限制的每次匹配,您的语言都可以赚取0到2分。(将有10个挑战和10个限制导致总共100种组合)A语言得分 如果可以在150字节以内的限制下完成任务,则为1分 如果该解决方案是所有语言竞赛中最短的解决方案,则为2分(如果出现并列,则两种语言均获得2分) 如果他们不能在少于150个字节的限制下创建完成该任务的程序,则为0分。 您的分数将是每次可能的比赛中赢得的所有积分的总和。目标是获得最高分。其他人可能会帮助您针对每种挑战寻找解决方案并提高得分。 发布时,我将显示每个列表的4个项目,第二个答案一周后,我将显示另外8个项目。在第一周之前揭示两部分内容的任何匹配项中,您只会获得1分(最短提交数不计)。这样一来,您就可以了解语言在处理过程中的堆叠程度,但是您不能仅仅为了应对所有挑战和限制而设计语言。 我将在问题中包含预期类别的哈希值,以便您可以确定在本周内不会为了有利于任何一方而更改它们。另外,在本周结束之前,我不会告诉任何人隐藏的参数,也不要自己参加挑战。 预先存在的语言 这项挑战对所有先前存在的语言都是开放的,但是,如果您不是该语言的作者,请将您的答案作为社区Wiki,以便我们社区的其他成员可以直接为得分做出贡献。命令行标志不需要遵守任何限制,但是每个程序都应使用相同的命令行参数运行(即,应选择一个并坚持使用)。这些不会增加您的字节数。 挑战与限制 不管您使用的是什么代码页,对二进制文件的ASCII编码都实施了限制。其中一些链接到网站上的现有问题,他们从中继承挑战的io要求和限制的来源限制。您可以忽略任何“禁止内置”或在任何相关挑战上覆盖现有的元共识。 提醒一下:不要试图统治律师;我知道这是一场比赛,但是因为本质上有100种不同的子挑战,所以我无法保证所有挑战都是完全没有问题的。只是尝试去玩。 挑战性 排序整数列表 打印 Hello, world! 确定括号是否平衡 测试原始性 限制条件 仅奇数字节(每8位必须为奇数) 双字节 字节按升序排列(每个字节大于最后一个字节) 源代码是回文 其余条件的sha512哈希为: 4de5eca33c6270798606cf1412820c4ce112d8b927ef02877f36795b2b15ffacca51ea598fa89b8d6bc9f4cde53810e0e7ade30e536e52e28f40a6a13841dfc5 -

1
计算文本中的拼写错误;尽量减少代码中的拼写错误
编写一个需要两个输入的程序或函数: 一条短信 此 Github文件中显示的英语词典(包含约60000个单词) 并输出消息中的拼写错误数(有关定义和测试用例,请参见下文)。 您可以将字典作为函数的参数,作为程序期望找到的预定义文件,以代码中的硬编码数据或任何其他明智的方式接收。 您的代码本身应该看起来像一条短信,并且拼写错误最少。因此,您将通过将代码本身作为输入输入来计算代码的分数。 获胜者是得分最低的代码(可能的最低得分为0)。如果有多个分数相同的答案,则获胜者取决于代码大小(以字符为单位)。如果仍然有两个答案,则获胜者是较早的一个。 如果需要,可以假定输入消息为ASCII码(字节32 ... 126),其中换行符以常规方式编码(1字节“ 10”或2字节“ 13 10”),并且为非空。但是,如果您的代码包含非ASCII字符,则它也应支持非ASCII输入(以便它可以计算自己的分数)。 字符分为以下几类: 字母 a ... z和A ... Z 空格(此处定义为空格字符或换行符) 标点 . , ; : ! ? 句子结束 . ! ? 垃圾(其余所有) 甲字被定义为字母序列,这是最大的(即,既不,前面和后面通过一字母)。 甲句子被定义为不属于句结束字符的最大序列。 如果字符违反任何拼写规则,则表示拼写错误: 字母必须属于词典单词(或者换句话说:没有出现在词典中的每个长度为N的单词都算作N个拼写错误) 句子中的第一个字符(忽略任何开头的空白字符)必须是大写字母 除上一条规则指定的字母外,所有字母均必须小写 标点符号只能在字母或乱码之后使用 换行符只能在句子结尾的字符之后 消息开头和之后的空格字符不允许使用空格字符 不应有垃圾(或换句话说:每个垃圾字符计数是一个拼写错误) 另外,最后一句必须为空或仅由一个换行符组成(即,消息应以句子结尾字符和可选的换行符结尾-我们称之为规则8)。 测试用例(在每个字符下面是一个违反的规则;在后面=>是必需的答案): Here is my 1st …

12
Terra Mystica:单车动力
棋盘游戏Terra Mystica具有一些非常有趣的机制,其中一种主要资源就是力量。每个玩家不用从银行获得和消耗权力单位,而是以恰好12个权力单位开始游戏,这些权力分配在三个“碗”中,分别标记为I,II和III。获得和消费能力然后简单地在这些碗之间转移权力: 要消耗一个单位的功率,请将其从III碗移到I碗(前提是您在III碗中有一个单位)。 当获得一个单位的功率时,如果碗I中有一个单位,请将其移至碗II中。如果碗I中没有单元,但碗II中有单元,请将其移至碗III中。如果所有装置都已经放在III号碗中,则什么也不会发生。 当您一次获得或花费多个单位时,将一次处理一个单位。 这是一个例子。假设玩家开始时具有以下功率分布(按顺序分配I | II | III): 5 | 7 | 0 如果他们多次获得和花费力量,他们的力量将发生以下变化: 5 | 7 | 0 Gain 3 ==> 2 | 10 | 0 Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II, then the remaining 4 from II …

28
按元素的字符串乘法
灵感来自这个挑战(感谢@cairdcoinheringaahing为标题!),你的任务就是用下面的规则来取两个打印的ASCII字符串,并乘其逐元素。 它是如何工作的? 给定两个字符串(例如split和isbn),您将首先截断较长的字符串,使它们具有相等的长度,然后确定其ASCII码: split -> spli -> [115, 112, 108, 105] isbn -> isbn -> [105, 115, 98, 110] 下一步将是[0..94]通过减去32每个代码将它们映射到范围: [115, 112, 108, 105] -> [83, 80, 76, 73] [105, 115, 98, 110] -> [73, 83, 66, 78] 现在,您将它们乘以逐元素的模95(以保持在可打印范围内): [83, 80, 76, 73] ⊗ [73, 83, 66, 78] -> [74, …

30
加长信纸
给定一个非空的小写ASCII字母a-z字符串,请输出该字符串,并且该字母的每个连续“游程”都要加长该字母的一个副本。 例如,dddogg(3 d “S,1 o,2 g “S)打开到ddddooggg(4 d “S,2 o “S,3 g “S)。 这是代码高尔夫球:以字节为单位的最短答案将获胜。 测试用例 aabbcccc-> aaabbbccccc 门铃-> ddooorrbbeelll uuuuuuuuuuz-> uuuuuuuuuuzz q-> qq xyxyxy-> xxyyxxyyxxyy xxxyyy-> xxxxyyyy
28 code-golf  string 

11
区分大小写(非常)的字符串更有趣
受此挑战(或更具体地说,是通过误读)的启发,我提出了以下挑战: 给定输入字符串S,请颠倒所有大写字符和所有小写字符的顺序。保留所有非字母字符。例如: 请注意,大写字母W(第一个大写字母)被替换为H(最后一个)。小写字母也一样:“ d”(第一个)被e(最后一个)交换,l(第二个)被l(pen-ultimate)替换……所有非字母字符都保留在原位。 输入值 输入是仅包含32-126范围内的ASCII字符的字符串。 保证输入的字符长度至少为1个字符,并且不会超出您的语言限制。 输出量 相同的字符串,并按说明交换字符。 附加规则 禁止出现标准漏洞 答案必须是完整的程序或功能,而不是摘要或REPL条目。 代码高尔夫,最短答案(以字节为单位)获胜。 测试用例 A A Ok Ok OK KO Hello, World! Wdlro, Holle! 0123456789 0123456789 The quick brown Fox jumps over the lazy doge Feg odyza lehtr Tev ospmu jxon wor bkci uqeh odd ddo racecar racecar EtOn Em …
28 code-golf  string 

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.