编程拼图和代码高尔夫

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

10
新订单6:复活节彩蛋
简介(可以忽略) 将所有正整数按其常规顺序(1、2、3,...)放置有点无聊,不是吗?因此,这是围绕所有正整数的排列(重新排列)的一系列挑战。这是本系列的第六个挑战(链接到第一,第二,第三,第四和第五个挑战)。 这个挑战有一个温和的复活节主题(因为是复活节)。我从这种装饰精美(并且我个人认为比较丑陋)的鹅卵中汲取了灵感。 它使我想起了Ulam螺旋形,其中所有正整数都放置在逆时针螺旋形中。这种螺旋具有一些与质数有关的有趣特征,但与这一挑战无关。 如果我们采用Ulam螺旋中的数字并按从1开始的顺时针旋转螺旋追踪所有整数,那么就可以应对此挑战对正整数的置换。这样,我们得到: 1, 6, 5, 4, 3, 2, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 25, 24, 23, etc. 如果您要绘制两个螺旋,则将得到某种无限的(例如蛋壳)螺旋网格(请注意此处的“ 新订单”参考)。 该序列存在于OEIS中,编号为A090861。由于这是一个“纯序列”质询,因此任务是针对给定的输出作为输入,其中是A090861。一个(n )a(n)a(n)ñnn一个(n )a(n)a(n) 任务 给定一个整数输入,以整数格式输出,其中是A090861。ñnn一个(n )a(n)a(n)一个(n )a(n)a(n) 注意:此处假定基于1的索引;您可以使用基于0的索引,因此,等等。如果您选择使用它,请在答案中提及。a (0 )= 1 ; a (1 )= 6a(0)=1;a(1)=6a(0) = 1; a(1) …

8
这是重复抽奖吗?
问题: 在国际象棋中,有一个关于重复抽奖的众所周知的规则。如果同一位置重复3次(或更多次),则打算进行此举动的玩家将引起平局。 有时候,如果最后几步只是球员的来回移动,这对于仲裁员来说是一件容易的事。有时,当零件在重复的位置之间显着移动时,它会变得不那么琐碎。 挑战中的问题是,给定坐标坐标的移动列表,如果要求的位置是通过重复绘制(已被看到3次或多次),则输出真值;如果要求的位置不是通过重复绘制,则输出假值。如下所述,或您选择的任何符号(但您必须转换测试用例)。 什么是职位? 在现实世界中,位置会受到诸如玩家是否可以装城堡或是否有传球之类的因素的影响;你应该不是在你的解决问题的办法考虑这些。在这个问题中,仅通过板上的部件的配置来确定位置。因此,出于此问题的目的,如果两个板上的每个正方形都被相同类型的相同颜色的零件占据,则两个位置被视为相同。这不一定是确切的棋子,例如,怀特的骑士可以交换正方形,并且如果所有其他棋子都符合条件,则该棋子仍将位于同一位置。 有效符号是什么样的? 尽管我将继续解释坐标符号,但是您可以自由选择所选择的符号系统进行输入。规定: 符号中的每一项都描述以下任何一项或全部:涉及的一件或多件;是否已交付检查,将死,再次检查,将死或僵持;是否发生了被动捕获;初始位置;最后的位置。 您的符号中可能没有重复的信息。 因此,只要满足这些条件,只要您在回答中指定,我就会很乐意接受您的符号系统。例如,可以是0索引行,列元组或任何对您的程序有意义的内容。 坐标符号 坐标符号是一种纯粹将移动描述为坐标系的符号。 首先将移动描述为来自该集合的初始坐标{A1-H8},然后再次描述为来自同一集合的目标坐标。因此,国王的甘比特看起来像(作为字符串的集合) {"E2-E4","E7-E5","F2-F4"} 我认为这是解决此问题的最佳方法,因为它不会散布无关紧要的信息,例如是否进行过检查或工件移动的类型。如前所述,可以选择一种表示法,因此您可以使用另一种表示法,例如代数表示法,也可以改写该表示法(例如,删除破折号或作为元组列表) 规则: 你应该不考虑位置或移动是否有效,只有它是否会导致重复 您可以假设将不会进行小规模促销和典当促销。 您应该将字符串列表作为输入,并输出与最后一次移动是否发生了第三次(或更多次)重复相对应的真实或错误值 游戏始终在国际象棋的标准起始位置开始。初始位置可以计入重复。 如果最后一步没有重复该位置,则不会发生重复绘制 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例 您应该为以下内容返回真实值: {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","D2-D4","D7-D5","D1-D3","D8-D6","C3-B1","C6-B8","B1-C3","B8-C6","D3-D1","D6-D8","D1-D3","D8-D6"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-E6","E2-F3","E6-D4","F3-D1","D4-C6","D1-E2","C6-D4","E1-D1","D4-C6","D1-E1","C6-D4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3"} 和虚假的值: {} {"E2-E4","E7-E5","F2-F4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","F2-F4","F7-F5"} {"E2-E4","E7-E5","G1-F3","B8-C6","F1-C4","G8-F6","F3-G5","D7-D5","E4-D5","F6-D5","G5-F7"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-C6","E2-D1","C6-D4","D1-E2","D4-C6","E2-D1"} {"B1-C3","B8-C6","C3-B5","C6-B4","B5-D4","B4-D5","D4-C6","D5-C3","C6-B8","C3-B1","B8-C6","B1-C3","C6-B8","C3-B1"} {"E2-E4","E7-E5","D1-E2","E8-E7","E1-D1","D8-E8","E2-E1","E7-D8","E1-E2","E8-E7","E2-E1","E7-E8"}

6
矩形内的独特砖瓦
我在浏览#1,看到这个问题有关平铺显示M×N的矩形,我认为这将是伟大的高尔夫球场。这是任务。 给定尺寸M和N,编写一个程序,输出在给定这些约束的情况下可以平铺MxN矩形(N是行数,而不是列数。这并不重要)有多少种独特方式。 所有图块均为2x1或3x1 所有图块都留在其行内(即它们都是水平的) 每两个相邻的行之间,除了两端之外,磁贴不应对齐 M和N保证至少为1 例如,有效的8x3矩阵切片将是 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|_____|___| |___|_____|_____| 但是以下内容将无效,因为行对齐 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|___|_____| |_____|_____|___| 测试用例: 8x3:4 3x1:1 1x1:0 9x4:10 编码高尔夫,最短的答案将获胜。

5
抵制主教的密码
不要与密码主教善良相混淆! 给定一个字符串,请回答(真实/虚假或两个一致的值),如果它构成了对主教不利的密码。 密码是针对主教强,如果它是由交替字母(在串a-h)和数字(中1-8),使得每对字符可以被解释为在棋盘的正方形,如果你把一个白色的棋子上每平方命名使用密码,那么白色主教就无法以任何连续的顺序从第一1行中的任何正方形移动到最后一行中的任何正方形8。 例子 对主教的密码很强 a1b1c1d1e1f1g1h1 a8b8c8d8e8f8g8h8 a1b2c3d4d5f5f4g3g4h2b5 h4g4f4e4c4b4a4c3e3 a1b1c1d1e1f1g1a8b8c8d8e8f8g8 b4b5d4d5f4f5g3h5 例如,a1b1c1d1e1f1g1a8b8c8d8e8f8g8对应于位置,b4b5d4d5f4f5g3h5对应于位置 针对主教的密码薄弱 a4c4e4g4g5d6f6e3d2b2 (格式正确但不强壮-感谢Jo King提供的示例!) b1c1d1e1f1g1h1a8b8c8d8e8f8g8 (格式正确但不强壮) h4g4f4e4c4b4a4c3 (格式正确但不强壮) d4 (格式正确但不强壮) b4b5d4d5f4f5g2h5 (格式正确但不强壮) correct horse battery staple (格式错误) 1a1b1c1d1e1f1g8a8b8c8d8e8f8g (格式错误) a (格式错误) aa (格式错误)

6
二进制自转
给定一个二进制3D数组,对于每一层,按其上一层的各列的二进制编码所示,将其每一列循环向上旋转许多步,然后按如下所示将其每一行循环左旋转许多步下方图层的行的二进制编码。 总会有至少三层。顶层的列和底层的行不应旋转。 演练 让我们从小的4层2行3列数组开始: [[[1,0,1], [1,0,0]], [[1,0,1], [0,1,1]], [[0,1,1], [1,1,1]], [[1,1,0], [1,1,1]]] 第一步是评估每一层的列和行以二进制编码的数字: 3 0 2 5 [[[1,0,1], 4 [1,0,0]], 2 1 3 5 [[1,0,1], 3 [0,1,1]], 1 3 3 3 [[0,1,1], 7 [1,1,1]], 3 3 1 6 [[1,1,0], 7 [1,1,1]]] 第一层[[1,0,1],[1,0,0]]不会旋转其列,但其行将分别向左循环5步和3步,从而变为[[1,1,0],[1,0,0]]。 第二层[[1,0,1],[0,1,1]]的列将分别循环向上旋转3、0和2步,给出[[0,0,1],[1,1,1]],然后将行分别向左循环旋转3和7步,没有可见变化。向上旋转2、1、3步 的第三层[[0,1,1],[1,1,1]]保持不变,向左旋转6、7步也没有任何作用。 最后,[[1,1,0],[1,1,1]]向上旋转了1、3和3步的第四层是[[1,1,1],[1,1,0]],但是之后的行不再旋转,因为它是最后一层。 再次将所有图层放在一起,便得到了二进制自旋转3D数组: [[[1,1,0], [1,0,0]], [[0,0,1], [1,1,1]], …

2
密集包装的十进制(DPD)至十进制,带有逻辑门
受到nandgame最近在TNB上的普及以及我以前的挑战的启发。 背景 密集包装的十进制(DPD)是一种以二进制有效存储十进制数字的方法。它以10位存储三位十进制数字(000至999),这比朴素的BCD(以4位存储一位数字)的效率要高得多。 换算表 DPD旨在通过简单的从上到下的模式匹配在位和数字之间轻松转换。每个位模式定义数字有多少个高数字(8-9),它们在哪里以及如何移动这些位以形成小数表示。 以下是从DPD的10位到三位十进制数字的转换表。每个十进制数字都表示为4位二进制(BCD)。双方都从最高位到最低位从左到右书写。 Bits => Decimal (Digit range) a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7) a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9) a b c g h …

9
绘制Peano曲线
介绍 在几何学中,Peano曲线是Giuseppe Peano在1890年发现的第一个空间填充曲线示例。Peano曲线是从单位间隔到单位平方的连续的连续函数,但不是内射的。Peano受到Georg Cantor的早期结果的启发,认为这两个集合具有相同的基数。由于此示例,一些作者使用短语“ Peano曲线”更笼统地指代任何空间填充曲线。 挑战 该程序采用一个整数输入n,并输出代表nPeano曲线第th次迭代的图形,该图形从该图像最左侧所示的侧面2开始: 输入值 n给出Peano曲线迭代次数的整数。可选,其他输入在“奖金”部分中描述。 输出量 nPeano曲线的第三次迭代的图形。工程图可以是ASCII艺术图,也可以是“真实”工程图,以最简单或最短的时间为准。 规则 输入和输出可以任何方便的格式给出(为您的语言/解决方案选择最合适的格式)。 无需处理负值或无效输入 完整的程序或功能都是可以接受的。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 奖金 由于这不应该是在公园散步(至少使用我能想到的大多数语言),因此可为以下各项奖励积分: -100字节,如果您的代码生成的Peano曲线构造的gif达到n。 -100字节,如果您的代码为任何矩形绘制了空间填充曲线(显然,Peano曲线仅适用于正方形)。您可以假设输入采用以下形式:n l wwhere n具有与之前相同的含义(迭代次数),但是where l和w成为绘制曲线的矩形的长度和宽度。如果为l == w,这将成为规则的Peano曲线。 负分数是允许的(但有可能...)。 编辑 请在的解决方案中包含程序的输出n == 3 (l == w == 1)。

20
数字平方
考虑一个自然数序列,其中N在N ^ 2中作为子串出现。A018834 输出n此序列的第th个元素。 规则 程序仅n作为输入,仅输出一个数字- N。 序列可以是0索引或1索引。 Sequence: 1 5 6 10 25 50 60 76 100 250 376 500 600 625 760 ... Squares: 1 25 36 100 625 2500 3600 5776 10000 62500 141376 250000 360000 390625 577600 ... 这是代码高尔夫球,因此最短的代码获胜。

3
取消缩音
Pyth也许是最成功的通用高尔夫球语言。尽管由于更新的语言而有所下降,但从2014年到2016年,Pyth简洁的语法,不断的更新,重载以及(对于其时代而言)许多内置函数使它成为大多数问题的最爱。 Pyth代码通常很难阅读。甚至调试模式(已编译的Python)的输出通常也由一长行组成,有时会在括号内嵌套十个深处。但是,正确格式化的Pyth可读性强。 这是一段由@isaacg在Play the Word Chain中编写的Pyth代码。 .MlZfqhMtTeMPT+Lzs.pMyQ 这样更具可读性。 .M Filter by gives-maximal-value of l Z lambda Z:length(Z) over f filter by (lambda T: q equal hM t T head-map tail T eM P T end-map Pop T) +L Append z to each element in z s .pM y Q flattened …

26
自给自足的权力
给定integer n,输出e大于1 的最小指数,n^e其中包含n作为子字符串。 例如,对于25,答案应为2,作为25 ^ 2 = 625,包含25为子字符串,但是对的答案13应为10,作为13 ^ 10 = 137858491849,因此10结果的最低指数为包含13为子字符串。 规则 标准I / O规则 适用标准漏洞 以字节为单位的最短代码获胜 n 总是大于的整数 0 测试用例 1 => 2 (1 ^ 2 = 1) 2 => 5 (2 ^ 5 = 32) 3 => 5 (3 ^ 5 = 243) 4 => 3 (4 …
13 code-golf  number 

11
心电图序列的条款
介绍 EKG序列以1和2开头,因此规则是下一项是序列中尚未存在的最小正整数,并且其与最后一项的公因数大于1(它们不是互质数)。 第一项是: 1,2,4,6,3,9,12,12,8,10,5,15,... 之所以称为EKG,是因为其术语图与EKG非常相似。 它是OEIS中的序列A064413。 挑战 您必须编写一个函数,将整数n作为输入并输出序列中n个第一项中有多少个大于n。 由于序列的规则以第三项开头,因此输入整数必须大于或等于3。例如,给定输入10的输出是1因为第七项为12,而其他前十项都不超过10。 测试用例 3-> 1 10-> 1 100-> 9 1000-> 70 规则 对于小于3的整数,该函数可能输出0或错误代码。 没有其他特定规则,只有:编码高尔夫球,越短越好!

4
将ASCII美工表转换为UTF-8表
当我编写文档,注释等时,我喜欢制作ASCII表。它们通常最终看起来还不错,但是我始终觉得它们看起来会更好-特别是因为UTF-8 / Unicode包括了箱形图字符。但是,这些字符的使用非常繁琐,需要多次按键才能插入。你的任务?编写一个程序或函数,可以将ASCII表自动转换为等效的UTF-8 / Unicode。 这个挑战被沙盒化了。 挑战 编写一个程序,该程序将ASCII表作为输入字符串,然后输出用Unicode / UTF-8框绘图字符重绘的表。具体地说,表中的字符应按以下方式翻译: (Unicode, 3 bytes each in UTF-8) - to ─ (\u2500) | to │ (\u2502) = to ═ (\u2550) and + to one of: ┌ (\u250C), ┐ (\u2510), └ (\u2514), ┘ (\u2518), ├ (\u251C), ┤ (\u2524), ┬ (\u252C), ┴ (\u2534), ┼ …

16
修剪那些分散注意力的背景!
拍照时会很烦人,但背景会损害图像的实际内容吗?我会说是的。我需要知道应该种植多少,这样我才能摆脱这个问题!但是-像往常一样-我很懒,所以我需要有人替我做... 任务与规则 给定一个表示图像的二进制矩阵,输出包含原始矩阵中所有111 s 的最小子矩阵的尺寸(宽度和高度)。甲子矩阵是从原始的矩阵相邻条目的块。等效地,它是通过重叠原始行的相邻行的子集和相邻列的子集而形成的新矩阵。 也可以将矩阵的宽度和高度作为输入。 该输入保证至少包含一个111。 您可以通过任何标准方法进行输入并提供输出,同时请注意,默认情况下,这些漏洞是禁止的。这是代码高尔夫,因此请尝试以您选择的语言可以管理的最少字节来完成任务。 例 ⎡⎣⎢⎢⎢⎢⎢⎢000000110000110010000011000100⎤⎦⎥⎥⎥⎥⎥⎥⟶⎡⎣⎢110011100011010⎤⎦⎥⟶(5,3)[000000010100011011001010000000]⟶[101001101101010]⟶(5,3)\left[\begin{matrix} \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\\ \color{red}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}0\\ \color{red}0&\color{blue}1&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}1\\ \color{red}0&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0\\ \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\end{matrix}\right] \longrightarrow \left[\begin{matrix}1&0&1&0&0\\1&1&0&1&1\\0&1&0&1&0\end{matrix}\right]\longrightarrow(5,3) 测试用例 输入| 输出量 [[0,1,0,0,0,1,0]] ->(5,1)或(1,5) [[0,0,0,0,0],[0,1,0,1,0],[0,0,1,0,0]] ->(3,2)或(2,3) [[1,1,1,1],[0,0,0,0],[0,0,0,0],[1,0,0,0]] ->(4,4) [[0,0,0,0,0,0],[0,1,0,1,0,1],[0,0,0,0,0,0]] ->(5,1)或(1,5) [[0,0,0,0,0],[0,1,0,1,0],[0,0,1,0,0],[0,1,0,1,0],[ 0,0,0,0,0]] ->(3,3) [[0,0,0,0,0,0],[0,1,0,1,0,0],[0,1,1,0,1,1],[0,0,1, 0,1,0],[0,0,0,0,0,0]] ->(5,3)或(3,5)

27
逆Collat​​z猜想
我认为Collat​​z猜想已经众所周知。但是如果我们颠倒规则怎么办? 从整数n> = 1开始。 重复以下步骤: 如果n为偶数,则将其乘以3并加1。 如果n为奇数,则减去1并除以2。 达到0时停止 打印重复的数字。 测试用例: 1 => 1, 0 2 => 2, 7, 3, 1, 0 3 => 3, 1, 0 10 => 10, 31, 15, 7, 3... 14 => 14, 43, 21, 10, ... 规则: 该序列不适用于许多数字,因为它进入了无限循环。您无需处理这些情况。仅打印上述测试用例就足够了。 我建议减去1并除以2以得到一个有效的整数以继续,但是并不需要以这种方式进行计算。您可以将其除以2并转换为整数或将提供预期输出的任何其他方法。 您还需要打印初始输入。 输出不需要格式化为测试用例。这只是一个建议。但是,必须遵守迭代顺序。 最小的代码获胜。

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

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.