编程拼图和代码高尔夫

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

10
迷宫可以解决吗?
难题 如果迷宫n * m无法解析,则打印0 如果可以解决迷宫n * m(以1种或多种方式),则打印1。 (所以我不是在问路径,但是是否有可能解决!!!) 输入数组(2d): [[0,0,0,0,0,0,1],[0,0,0,0,0,1,0],[0,0,0,0,1,0,0],[1,0,0,0,0,0,0]] XXXXXXXXX XS XX X X X X X X XX FX XXXXXXXXX 0 = can pass through 1 = can not pass trough [0][n] is the last block of the first line [m][0] is the first block of the last …

2
使用NAND逻辑门构建乘法器
基于我之前相同类型的问题,使用NAND逻辑门构建加法器,这一次要求您乘以而不是加。 建立的(双线)NAND逻辑门的图,将采取的输入线A1,A2,A4,B1,B2,B4,代表两个二进制数A来B对输出线从0到7,并返回值C1,C2,C4,C8,C16,和C32,表示C,这是产品A和B。 您的分数取决于您使用的与非门的数量(每个门1分)。为简化起见,您可以在图表中使用AND,OR,NOT和XOR门,并具有以下相应的分数: NOT: 1 AND: 2 OR: 3 XOR: 4 这些分数中的每一个都对应于构建相应门所需要的NAND门数量。 最低分获胜。

2
玩Connect 4!
编写一个程序玩Connect 4游戏。您将获得棋盘的状态作为输入,并且必须决定将棋子放置在哪一列中,以连续获取4个(水平,垂直或对角线)或阻止对手进行相同的操作。 棋盘是一个6x7的阵列,其中每个单元格可以为空(''),包含您的棋子('X')或对手的棋子('O')。示例板: O XX X XOX OO XOO OXO OXXOXXO XOXOXOX 您可能希望在第3列(第0-6列,从左开始编号)中对角线获胜。所以你输出: 3 您的代码必须输出列号,并且必须满足以下条件: 您不能在已经有6个乐段的列中演奏。 如果至少有一个获胜的举动,则必须打其中之一。 如果您可以阻止对手继续前进,则必须这样做。 请注意,最佳比赛不是必需的,仅当您获得即时胜利或阻止对手的即时胜利。如果您的对手有不止一种获胜方式,则无需阻止他们。 在标准输入上为您提供了木板,并且必须在标准输出上打印要在其中播放的列号。保证该板的格式正确(无孔,至少可以移动),并且任一方都没有赢球。 最短的代码胜出。 例子1 X O X O OOO X XXX O 您必须打0列或4列才能获胜。 例子2 X X X O O XOX XO XXO XOX XXO XXO 您必须打第3列才能阻止对手的即时获胜。 例子3 X XO OX O XO …

10
埃及分数
概述: 来自维基百科:埃及分数是不同单位分数的总和。即,表达式中的每个分数都有一个等于1的分子和一个为正整数的分母,并且所有分母彼此不同。这种类型的表达式的值为正有理数a / b。每个正有理数都可以用埃及分数表示。 挑战: 编写最短函数,该函数将返回加总给定分数的最小单位分数集的所有分母的值。 规则/约束: 输入将是两个正整数值。 这可以是STDIN,argv,逗号分隔,空格分隔,或其他任何你喜欢的方法。 第一个输入值应为分子,第二个输入值应为分母。 第一个输入值应小于第二个输入值。 输出的值可能超过系统/语言(RAM,MAX_INT或存在的任何其他代码/系统约束)的内存限制。如果发生这种情况,只需将结果截断为可能的最高值,然后注意(即...)。 输出应该能够处理至少2147483483647(2 31 -1,32 位带符号int)的分母值。 较高的值(long等)完全可以接受。 输出应是找到的最小单位分数集(或分数本身,即1/2)的分母的所有值的列表。 输出应按照分母的值升序排序(以分数的值降序)。 可以使用任何希望的方式对输出进行定界,但是两者之间必须有一些字符,以便将一个值与下一个值区分开。 这就是代码高尔夫,因此最短的解决方案将获胜。 举例: 输入1: 43, 48 输出1: 2, 3, 16 输入2: 8/11 输出2: 1/2 1/6 1/22 1/66 输入3: 5 121 输出3: 33 121 363

11
汇编语言奎因
写出尽可能短的汇编语言quine。 除非有print-quine说明或等效说明,否则请使用所需的任何ISA 。示例包括x86,MIPS,SPARC,MMIX,IBM BAL,MIX,VAX,JVM,ARM等。 您可以针对_printfI / O 链接到C标准库的功能(或Java等效于JVM字节码的功能)。 长度将根据指令数和数据段的大小进行判断。解决方案必须至少包含两个说明。 奎纳应该打印出汇编代码,而不是印刷的机器代码。

19
基本计算器
您必须编写一个程序来评估将输入到计算器中的字符串。 程序必须接受输入并输出正确答案。对于不具有标准输入/输出功能的语言,您可以使用readLine和print。 要求 不使用任何“评估”功能 可以处理浮点数和负数 至少支持+,-,*和/运算符 可以处理在运算符和数字之间包含一个或多个空格的输入 从左到右评估表达式 最短的程序将获胜。如果出现平局,则首先提交的程序将获胜。 您可以假定输入有效并且遵循正确的格式 测试用例 输入项 -4 + 5 输出量 1 输入项 -7.5 / 2.5 输出量 -3 输入项 -2 + 6 / 2 * 8 - 1 / 2.5 - 18 输出量 -12

30
检测旋转的琴弦
从中读取两个字符串stdin。如果一个字符串是另一字符串的旋转版本,则 输出Yes。 否则输出No 测试用例 输入项 CodeGolf GolfCode 输出量 Yes 输入项 stackexchange changestackex 输出量 Yes 输入项 stackexchange changestack 输出量 No 输入项 Hello World 输出量 No
20 code-golf  string 

30
首先对奇数进行排序
重新排列给定列表,使所有奇数出现在所有偶数之前。除此要求外,输出列表可以按任何顺序排列。 输入将仅包含整数,但它们可以为负数,并且可以重复,并且可以按任何顺序出现。 最短的解决方案获胜。 测试用例 [1,2] → [1,2] [2,1] → [1,2] [1,0,0] → [1,0,0] [0,0,-1] → [-1,0,0] [3,4,3] → [3,3,4] [-4,3,3] → [3,3,-4] [2,2,2,3] → [3,2,2,2] [3,2,2,2,1,2]→ [1,3,2,2,2,2]或[3,1,2,2,2,2] [-2,-2,-2,-1,-2,-3]→ [-1,-3,-2,-2,-2,-2,]或[-3,-1,-2,-2,-2,-2,] [] → []

30
码点总和奎因
该站点上的所有quine挑战都集中在字节数或字符本身上。这是不同的。您面临的挑战是编写一个程序,该程序产生的输出的代码点总和与源代码点总和相同。 产生一个代码点总和: 在程序的字符集中找到字符的值。 例如- FOO以ASCII:F= 70,O= 79,O= 79 将它们全部加在一起。ASCII的 代码点总和FOO:F+ O+ O= 70 + 79 + 79 = 228。 如果源代码为ABC,而输出为,则ASCII和求和的一个例子!!!!!!。这是因为源的ASCII值的总和(A= 65,B= 66,C= 67,总和= 198)与输出中的ASCII值的总和(!= 33、33 * 6 = 198) 。BBB也将是有效的输出cc。 规则 您的程序不得为反向,随机播放,错误或任何其他类型的“真实”字样。详细说明:如果输出包含与源相同的所有字符,则无效。 您的程序不能将编译器/解释器的任何错误/警告用作输出。 程序源必须使用与输出相同的代码页。 您的程序可以使用在挑战之前创建的任何代码页。 除换行和制表符外,程序的输出中不得包含任何不可打印的字符(例如ASCII 0至31,或127以上)。 有标准漏洞。 如果源和/或输出具有尾随换行符,则必须将其包括在代码点总和中。 最终字节计数(分数)中需要包含编译器标志,而不是源代码点总和。 输出/源不能为空。 计分 以字节数(不是代码点总和)中最短的答案为准。请使用以下标头格式答案: # Jelly, 12 bytes, sum 56 (SBCS) …
20 code-golf  quine 

9
汉明数
给定一个正整数,按顺序打印许多汉明数。 规则: 输入将为正整数Ñ ≤ 1 ,000 ,000n≤1,000,000n \le 1,000,000 输出应为https://oeis.org/A051037的前n个术语 执行时间必须小于1分钟 这是代码高尔夫球;最短代码胜出

5
硬币问题
背景 虚构的高尔夫国家的官方货币是foo,并且流通的硬币只有三种:3foos,7foos和8foos。可以看到,使用这些硬币不可能支付一定的金额,例如4 foos。然而,可以形成所有足够大的数量。您的工作是找到硬币无法形成的最大数量(在这种情况下为5个foos),这就是硬币问题。 输入项 您的输入是一个正整数列表,代表正在流通的硬币价值。对此有两点保证:L = [n1, n2, ..., nk] 的元素的GCD L为1。 L 不包含数字1。 它可能未分类和/或包含重复项(请考虑特别版硬币)。 输出量 由于GCD L为1,所以每个足够大的整数m都可以表示为其元素的非负线性组合。换句话说,我们有 m = a1*n1 + a2*n2 + ... + ak*nk 对于一些整数。您的输出是无法以这种形式表示的最大整数。提示一下,已知输出总是小于,如果和是(reference)的最大和最小元素。ai ≥ 0(n1 - 1)*(nk - 1)n1nkL 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。如果您的语言对此具有内置操作,则可能无法使用。对时间或内存效率没有任何要求,只是您应该能够在发布答案之前评估测试用例。 在我发布此挑战后,用户@vihan指出Stack Overflow有一个完全相同的副本。基于此元讨论,此挑战将不会被删除。但是,我要求所有基于SO版本的答案都应引用原文,并赋予其社区Wiki状态,如果原始作者希望在此处发布其答案,则将其删除。 测试用例 [3, 7, 8] -> 5 [25, 10, 16] -> 79 [11, …

7
滚动奎因骰子
创建一个输出自身的程序。 但是,如果源代码重复了n次(意味着将源代码的副本连接到末尾n-1次),则输出原始源代码的概率应该为1 / n,输出源代码的概率为1 / n。源代码重复两次,输出源代码的1 / n概率重复3次,...,输出源代码的1 / n概率重复n次。 例如,如果您的程序是foobar,则它应始终准确输出foobar。但是,如果运行foobarfoobarfoobarfoobar的话,应该是每一个输出的1/4的机会foobar,foobarfoobar,foobarfoobarfoobar和foobarfoobarfoobarfoobar。 每个可能的输出的分布应该相等 除了应用标准I / O方法和禁止标准漏洞外,还应用标准quine规则(无法访问其自己的源等)。 这是代码高尔夫球,所以最短答案以字节为单位

6
使用两个链接的程序,输出最大为n的序数
...序号(或序数)是按顺序表示位置或等级的单词。 来自维基百科。 您的任务是使用2个单独的程序(可以用2种不同的语言制作)来输出从first到的序数序列nth。您将输出完整的单词second,而不是2nd。 序数的挑战以前曾提出过,特别是在本条目中。在这一挑战中,普通物品仅仅是促进下文详述的独特条件的一种手段。 第1部分 您必须编写一个程序,当输入时n必须输出任何东西。 n始终是一个不大于999的正非零整数。 有效输出包括但不限于: 任何输出到stdout/ stderr/等 创建文件/文件夹/等 图形界面或任何类型的图像 什么都可以。 第2部分 您必须创建一个程序,该程序使用第1部分的程序的输出来输出序数序列,从1(第一个)到n第1部分中分析的序数。 大体情况: 第2部分的总字节数不得超过第1部分的总字节数(小于或等于)。 输出条件: 不区分大小写。 输出必须仅包含序数序列(仅包含字符aZ)和空格(允许换行)。 可以输出到任何源,只要在执行期间或执行之后可见即可。 只要程序输出正确,就不需要终止程序。 输出不需要具有任何语法,但可以选择包含它(连字符,逗号,“和”等)。nine hundred ninety ninth和一样可以接受nine hundred and ninety-ninth。 样本输出 n8 在哪里 FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH 计分 获胜条件的层次结构为: 第1部分中的最低字节数 第2部分中的最低字节数 Entry #1 | Part 1 = …
19 code-golf 

12
计算Landau函数
Landau函数 (OEIS A000793)给出对称组元素的最大阶数。在此,置换的顺序是最小的正整数k,因此\ pi ^ k是恒等式-等于置换的循环分解中循环长度的最小公倍数。例如,g(14)= 84,这是通过(1,2,3)(4,5,6,7)(8,9,10,11,12,13,14)实现的。G(n )G(ñ)g(n)小号ñ小号ñS_nππ\piķķkπķπķ\pi^kG(14 )= 84G(14)=84g(14) = 84 因此,G(n )G(ñ)g(n)也等于厘米(一个1个,... ,一ķ)厘米⁡(一种1个,…,一种ķ)\operatorname{lcm}(a_1, \ldots, a_k)的最大值,其中一种1个+ ⋯ + 一个ķ= n一种1个+⋯+一种ķ=ña_1 + \cdots + a_k = n其中一种1个,... ,一ķ一种1个,…,一种ķa_1, \ldots, a_k正整数。 问题 编写一个计算Landau函数的函数或程序。 输入项 正整数ññn。 输出量 G(n )G(ñ)g(n)是对称组小号ñ小号ñS_n元素的最大阶数。 例子 n g(n) 1 1 2 2 3 3 4 4 5 6 …

2
找到最小矩形的面积以包含最大为n的正方形
这是通常类型的序列问题,适用于OEIS序列A038666。也就是说,请执行以下任一操作: 接受否或任何输入,并输出A038666,直到宇宙热死为止。 接受一个正整数作为输入,并输出nnn A038666或其第一的第术语nnn条款。(如果使用000而不是111索引,则当然也必须1在0输入时输出。) 该nnn A038666的任期个矩形是其中最小的区域包含大小的非重叠广场1×1,2×2,…n×n1×1,2×2,…n×n1\times1,2\times2,\dots n\times n如果你使用111 -indexing。 例: 可以包含大小为1×11×11\times1到4×44×44\times4非重叠正方形的最小面积矩形的尺寸为7×57×57\times5: 4 4 4 4 3 3 3 4 4 4 4 3 3 3 4 4 4 4 3 3 3 4 4 4 4 2 2 1 x x x x 2 2 x 因此,a(4)=7×5=35a(4)=7×5=35a(4)=7\times5=35(111索引)。 类似地,包含大小为1×11×11\times1到17×1717×1717\times17 非重叠正方形的最小面积矩形的尺寸为39×4639×4639\times46,因此a(17)=39×46=1794a(17)=39×46=1794a(17)=39\times46=1794(111索引)。

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.