编程拼图和代码高尔夫

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

3
用BrainFuck打印'A'1000次
什么是最好的BrainFuck代码(就代码大小而言)才能打印“ A” 1000次? 我的方法是: 将“ A”设置为p [0] 将255设置为p [1]以显示255'A',3次 将235设置为p [1]以显示235'A' 这不是有效的方法,但是我找不到像乘法一样同时使用拖车计数器的方法 有没有比乘法更好的方法? 一个更笼统的问题:是否存在规则以尽可能小的代码对大量数字进行乘法运算?

30
块+枚举数字列表
我有一个十进制数字列表: 4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4 十进制数字列表称为项目。通过将相同和相邻的数字分组在一起,我们可以从这些项目中形成“块”。我想为每个块分配一个唯一的数字,从1开始,并按块在原始列表中出现的顺序增加1。因此,给定示例的输出如下所示: 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5 输入格式 数字列表。(0-9)您可以根据需要使用内置的语言阅读此列表。编码:ASCII 输出格式 一系列十进制数字,由定界符分隔。您的程序必须始终使用相同的定界符。定界符必须大于0位。编码:ASCII 有标准漏洞。

6
按独创性分组整数
介绍: 我收集曲折的难题。大多数曲折的拼图游戏都是由中国公司生产和销售的。大多数知名公司都要求拼图游戏设计师许可,以制作他们的设计并共同开发市场上的产品。在这种情况下,拼图设计师当然为他们的拼图之一上市而感到非常高兴和自豪。 但是,也有一些中国公司制造难题。这些仿冒品是未经原始创作者许可使用的设计,或者是已经存在的拼图的价格便宜的低价副本。 挑战: 我们将确定以特定顺序(从左到右†)“释放”的数字的独创性。 给定整数列表,请按其原始性进行分组和输出。 如何确定数字的独创性? 一个数字是否与先前的数字完全相同?组(最不原始),在所有其他组之后是X + 1组。X+1X+1X+1X+1X+1X+1 一个数字是不是一个较早数字的重复,而是一个负数(即原始数字是,但是现在是;反之亦然)?组。nnn−n−n-nXXX 数字的绝对值可以通过连接一个或多个更早的绝对数来形成,并且它不属于前面提到的组或吗?组X - ñ,其中Ñ是不同数字的在级联(和所使用的量Ñ ≥ 1)。X+1X+1X+1XXXX−NX−NX-NNNNN≥1N≥1N\geq1 这个数字不适合上述任何一组吗?到目前为止,它是完全唯一的吗?第111组(最原始的组),在所有其他组之前领先。 这听起来似乎很模糊,所以这里有一个分步示例: 输入清单: [34,9,4,-34,19,-199,34,-213,94,1934499,213,3,21,-2134,44449,44] 34是第一个数字,始终是原始数字,在组111。到目前为止的输出:[[34]] 9 也是原来的: [[34,9]] 4 也是原来的: [[34,9,4]] -34是早期数字的负数34,因此它在XXX组中:[[34,9,4],[-34]] 19 是原始的: [[34,9,4,19],[-34]] -199可以由两个较早的数字19和组成9,所以在X−2X−2X-2组中:[[34,9,4,19],[-199],[-34]] 34是较早数的精确副本,因此它在组X+1X+1X+1:[[34,9,4,19],[-199],[-34],[34]] -213 是原始的: [[34,9,4,19,-213],[-199],[-34],[34]] 94可以由两个较早的数字9和组成4,所以在X− 2X-2X-2组中:[[34,9,4,19,-213],[-199,94],[-34],[34]] 1934499可以由四个较早的数字形成19,34,4,和两次9,因此它在组X− 4X-4X-4:[[34,9,4,19,-213],[19499],[-199,94],[-34],[34]] 213是早期数字的负数-213,因此它在XXX组中:[[34,9,4,19,-213],[1934499],[-199,94],[-34,213],[34]] 3 是原始的: [[34,9,4,19,-213,3],[1934499],[-199,94],[-34,213],[34]] 21 是原始的: [[34,9,4,19,-213,3,21],[1934499],[-199,94],[-34,213],[34]] -2134可以由两个较早的数字213和4(或三个较早的数字21,3和和组成)4,但是我们总是使用最少数量的串联数字来确定创意),因此它在X− 2X-2X-2组中:[[34,9,4,19,-213,3,21],[1934499],[-199,94,-2134],[-34,213],[34]] 44449可以由两个较早的数字四次形成4和9,所以它在组X− …

29
计算单词中所有可能的字母组合
系统会为您提供一个字符串,其中将包含普通的az字符。(您可以假设在任何测试中都是如此,并假设所有字母也都为小写)。您必须确定可以对字符串中的各个字符进行多少个唯一组合,然后打印该数字。 但是,在计算可能的组合时,可以忽略重复的字母。换句话说,如果给定的字符串为“ hello”,则仅切换两个ls 的位置不会算作唯一短语,因此无法计入总数。 最短的字节数获胜,期待看到一些非高尔夫语言的创造性解决方案! 例子: hello -> 60 aaaaa -> 1 abcde -> 120
12 code-golf  string 

21
OEIS多种语言
这是与OEIS相关的答案链挑战。 哦,这样做的理由是因为公司需要一个程序才能打印出真正不好的OEIS序列,并且他们拥有每种语言。 答案链格式的工作方式如下: 有人发布了第一个答案,从中得出所有进一步的解决方案。这个答案是一个程序,给定数字N,以他们选择的任何语言(语言1)以OEIS顺序输入他们选择的任何索引(我们称为序列1)的第N个数字。 会有其他人出现并选择他们自己的顺序(必须与之前的顺序以及所有之前的顺序不同)。他们用另一种语言(必须与以前的所有语言都不同)编写一个程序,给定语言1的数字N输出序列1的第N个,给定语言2的数字输出序列1的第N个。 2。 此过程将无限进行。 序列的第n个术语是从第一个项目开始在第一个项目之后n次出现的术语。在这里,我们使用0和1索引,以便于在编码器上轻松实现! 没有语言或序列重用。 输入必须是整数或整数的字符串表示形式,而输出必须是序列的正确值。不需要错误处理(非整数输入)。 您不能连续发布两次。 您必须等待一个小时或更长时间才能再次发布。 在一周没有答案之后(倒数第二位的人),谁是倒数第二个倒数的人都赢了,尽管比赛可以无限期地继续下去。如果您排名倒数,并且可以证明可以再添加一种语言,那么您可以继续挑战直到下一位获胜者。 您可以假设输入或输出不会超出您语言的数字范围(例如,假设IEEE的限制不会超出任何序列),但是不要成为骗子,可以通过使用仅具有1.的语言 可以选择任何序列,只要之前没有使用过即可。 输入不能超出您正在使用的序列。 两种不同的语言版本是不同的语言(Python 2和Python 3被认为是它们自己的不同lang)。这不是严格的,但是根据经验,如果它与TIO上相同语言的另一个版本分开,则有所不同。 这不是禁止的,但是请尝试一次不使用OEIS给出的公式。 如果您生成的代码长度超过65536个字符,请提供访问它的链接(例如Pastebin)。 就是这样,仅此而已。准备?组?好玩! 是的,这是“一个OEIS接一个”,但使用了多人游戏。我以为会很酷。

30
打印最后输入的字节
挑战 您有一个输入字节字符串,在其中输出最后一个字节。 规则 您的提交可能是在输入中输出最后一个字节的程序或函数, 是字符串,stdin或命令行参数,并且 是非空的。 我当时想尽力解决这个问题,但是所有语言都可以参加。这是代码高尔夫球。 例子 "?" -> "?" "29845812674" -> "4" 目录 这篇文章底部的Stack Snippet从答案a)生成目录,答案是每种语言的最短解决方案列表,b)是总体排行榜。 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果您想在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](https://esolangs.org/wiki/Fish), 121 bytes 显示代码段 /* Configuration */ …
12 code-golf  string 

8
二十一点胸围计算器
二十一点(也称为二十一点)是您自己与发牌人之间的比较纸牌游戏,其中每个玩家依次与发牌人竞争,但玩家不互相对抗。 玩法如下,发牌人为您发牌。然后,发牌人自己将一张卡片面朝下。然后,发牌人再发给您一张卡。最后,发牌人面朝上给自己发卡。 挑战 您面临的挑战是编写一个程序(或函数),该程序在运行(或调用)时输出(或返回)发牌者给您的下一张纸牌会让您破产的概率,这意味着您之后手中的纸牌累计得分庄家给您另外一张超过21的卡。 输入值 正在播放的三张可见牌。它们是您手中的两张卡,并且是您在经销商手中可以看到的一张卡。您可以使用任何适合您的应用程序的格式。 一副牌中有52张牌(下面每张卡中的4张)。卡的价值如下: Symbol(Case Insensitive) Name Value 2 Two 2 3 Three 3 4 Four 4 5 Five 5 6 Six 6 7 Seven 7 8 Eight 8 9 Nine 9 T Ten 10 J Jack 10 Q Queen 10 K King 10 A or 1 …

9
BigNum Bakeoff重新启动
你们中的有些人可能对BigNum Bakeoff很熟悉,但最终却非常有趣。在某种约束和理论条件下,例如,可以运行该程序的计算机,该目标或多或少可以概括为编写一个输出最大的C程序。 本着同样的精神,我向所有语言提出了类似的挑战。条件是: 最多512个字节。 最终结果必须打印到STDOUT。这是你的分数。如果打印多个整数,则将它们串联在一起。 输出必须是整数。(注意:Infinity不是整数。) 内置常数不能大于10,但是数字/数字都可以(例如Avogadro的常数(作为内置常数)无效,但10000无效)。 当提供足够的资源来运行时,程序必须终止。 提供足够的运行资源时,打印输出必须是确定性的。 提供给您足够大的整数或bigints,以使您的程序可以运行。例如,如果您的程序要求对小于10 1,000,000的数字进行基本运算,那么您可以假定运行此功能的计算机可以处理至少10 1,000,000的数字。(注意:您的程序也可能在可处理最大10 2,000,000的数字的计算机上运行,因此仅调用计算机可处理的最大整数将不会产生确定的结果。) 为您提供了足够的计算能力,使您的程序可以在5秒内完成执行。(因此,不必担心您的程序是否已经在计算机上运行了一个小时,并且很快就无法完成。) 没有外部资源,因此不要考虑导入Ackermann函数,除非它是内置函数。 所有魔法物品都是暂时从一个大神那里借来的。 极大,未知限制 史蒂芬·H(Steven H),Pyth f 3 +B³F+ω²(256 26) 其中B³F是Church-Kleene的序数,其基本序列为 B³F[n] = B³F(n), the Busy Beaver BrainF*** variant B³F[x] = x, ω ≤ x < B³F 排行榜: 简单地美丽的艺术,红宝石 ˚F ψ 0(X(Ω M + X(Ω M + …

7
打个好字的高尔夫给你!
任务 在这个挑战中,您的任务是编写一些代码,以随机分布的方式输出随机选择的七巧板之一,但永远不要输出。 细化 如果没有输入,您的程序应输出其源代码的任何字谜。您的程序永远都不要输出自己的源代码,即,永远不要成为奎因。 输入值 您的程序不得输入任何内容。但是,如果您的语言需要输入,则可以假定将其小写a。但是,您不得以任何方式使用输入。 输出量 您的程序可以以任何方式输出,除非将其写入变量。允许写入文件,控制台,屏幕等。功能return也是允许的。 附加规则 程序的源代码必须至少包含3个字符(而不是3个字节)。 程序的源代码必须至少包含3个字谜(不包含其自身)。例如,aab由于(和)aab以外只有两个字谜,因此不算作有效提交。aabbaaaba 您的程序不得产生任何错误。 您的程序应准确输出其字谜。 适用标准漏洞和标准奎因规则。 例 假设程序的源代码是abc。它应该随机输出以下任意一项(均匀分布): acb bca bac cba cab 并且,它永远都不应输出abc。 获胜标准 这是代码高尔夫球,因此以字节为单位的最短代码胜出!如果出现平局,则以较早发布的解决方案为准!

4
///打高尔夫球的技巧
您在///打高尔夫球有哪些一般技巧?我正在寻找可以应用于代码高尔夫球问题的想法,并且这些想法至少也特定于///(例如,“删除不必要的空格”不是答案)。itflabtijtslwi和Lines的提示是主题,并且在这里也有效。 请为每个答案发布一个提示。
12 code-golf  tips 

1
疯狂的化学家和聪明的程序员
背景故事 您在化学实验室醒来时头昏眼花,并且意识到自己被一位老疯子化学家绑架了。由于他的年龄使他看不清视线,因此他希望您为他工作,只有这样,您才可以逃脱实验室。 任务 您的任务是返回分子的结构式,其化学式将作为输入给出。请注意,只有碳(C),氧(O)和氢(H)原子将用作输入。与化学公式不同,a 0是有效的量词,1不能省略a(例如C1H4O0,有效输入,但CH4不是)。 为了避免歧义,我们假设分子中不存在双键和三键。所有碳原子需要4个单键,所有氧原子需要2个,氢原子需要一个。我们还假设O-O债券也不存在。该分子不必存在也不是稳定的。 输入中的3碳原子绝不能超过以确保输出显示中的亮度。 您只应显示碳原子排列成直线而不中断的分子。嗯,没有C-O-C债券。 您必须返回之前规则未排除的所有可能分子。您不需要处理无效的输入。 以下示例显示了该分子必须处理的所有解决方案。 在分子式之一的页面平面上旋转180度被认为是多余的,不需要显示。 在下面的示例中,我将显示一个分子的所有可能的分子式,然后指出不需要显示的分子式。 例 输入: C2H6O2 首先,这里是此输入的所有可能公式(谢谢@Jonathan Allan) 01 H | O H | | H - O - C - C - H | | H H 02 H | H O | | H - O - C - …

11
通过计算指关节数来计算整整31天有多少个月
你们中仍有多少人仍然使用自己的指关节来确定一个月是否已不足31天? 您的工作是编写一个程序,通过“计算转向节”来计算一个月范围内有多少个月的时间已满31天,有多少个月的时间少于31天。 礼貌:amsi.org.au 输入值 一两个月,第二个月不必按时间顺序排在第二个月之前,可以以任何合适的格式给出。例如:201703 201902— 2017年3月至2019年2月。请描述您选择的输入格式。请注意,输入必须能够包含从1到9999的所有年份。指定的月份范围包括开始和结束月份。 输出量 两个整数:给定范围(31天)中的月数和少于31天(范围)中的月数。 示例:14 10— 14个指关节,10个凹槽(这意味着在该月范围内,我们有14个月的时间为整整31天,而10个月的时间少于31天)。 例如,对于范围中第二个月按时间顺序在第一个月之前的输入201612 201611,您必须输出一对零。 输入和输出示例 | Input | Output | |---------------|-------------| | 201703 201902 | 14 10 | | 201701 202008 | 26 18 | | 000101 999912 | 69993 49995 | | 201802 201803 | 1 1 | | …

7
绘制XNOR数字时序图
下面是一个(示意图)数字时序图,对于XNOR逻辑门。 ┌─┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ ┌───┐ A ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └── ┌───┐ ┌───┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ B ┘ └─┘ └─┘ └─┘ └───┘ └─┘ └ ┌─────┐ ┌─┐ ┌─┐ ┌───┐ X ──┘ └───┘ └───┘ └───┘ └──── 您的目标是完全按照图示复制它。 规则: 您可以打印它或返回多行字符串。 允许任意数量的配对和/或前导换行符; 允许尾随空格(但不能开头!); 如果您不能使用扩展的ASCII框绘图字符,则可以用它们代替unicode等效字符(不损失字节数)。 这是代码高尔夫球,因此最短的答案以字节为单位。 二进制表示 为了您的方便,上图的二进制表示如下: INP A=0101011101010110 …

4
抽象语法树高尔夫:FizzBu​​zz,Python
摘要 用最少的令牌在Python中实现FizzBu​​zz。 挑战 编写一个打印十进制数字(从1到100)的程序。但是,对于三倍打印“ Fizz”而不是数字,对于五倍打印“ Buzz”。对于三和五的倍数的数字,请打印“ FizzBu​​zz”。程序必须使用某些版本的Python编写。 有关更多详细信息,请参见1,2,Fizz,4,Buzz 计分 您的分数将等于此程序针对Python 3或该程序针对Python 2报告的代码抽象语法树中的节点数。要运行程序,请提供代码的文件名作为程序的命令行参数。例如: python simple_counter.py fizzbuzz.py 这些程序基于Python的ast模块。如果您有任何困难,请告诉我。 为避免琐碎的解决方案,例如用实际程序执行长字符串或对输出进行硬编码,还有一些其他限制: 您的代码中的令牌不得超过15个字符。以上程序将为您检查此要求。注意,为了易于实施,上述程序将注释计为标记。 代码执行/评估被禁止。 如果您对是否允许某些物品有疑问,请问我。 计分启发法 以下规则通常足以计算程序的分数: 语句块是1分:if,for ... in ...,while,else,等。 独立语句是1点:print在Python 2, break,pass等。 变量是2分 单令牌面值为1点:2131,"Hello, world!",True 函数是3点(使用变量需要2点,额外需要1点):print在Python 3中range,等等。 运营商有2点:+,*,%,and,not,等。 = 是1分 增量赋值为二点:+=,|=,等。 括号,缩进等为0点。 与赋值或表达式相反,包含表达式的行为+ 1点。 完全有代码是1点。 挑战: 最低分获胜。祝好运!

1
在GolfScript中将字符串强制为整数
GolfScript根据以下“优先级”顺序自动强制值: 整数→数组→字符串→块 (从最低到最高列出)。 这意味着"1"7+将字符串保留"17"在堆栈上(而不是8),因为字符串的优先级高于整数。 [ 对那些GolfScript的资深人士–道歉,以侮辱您各自的智慧。] 用其他方式怎么可能呢?也就是说,将字符串强制转换为整数?
12 tips  golfscript 

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.