编程拼图和代码高尔夫

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

30
单数:字母
目的 编写一个程序或函数(或等效函数),以进行排序并返回随机大小矩阵中的奇数字母。 细节 您将通过矩阵(作为字符串)作为诸如此类的随机尺寸的输入。 bbbbbbbbbb bbbbbdbbbb bbbbbbbbbb bbbbbbbbbb bbbbbbbbbb 您的工作是找到与其余字母不匹配的字母(在本例中为d,在第2行第6行找到),并返回该字母作为输出。矩阵将由字母A-Z,a-z换行符(\n,仅在行的末尾)组成,尺寸范围为5x5至10x10(25-100个字母)。 有标准漏洞。这是一场代码挑战赛。最小字节码的条目获胜。 输入值 如果是程序,则输入将通过标准输入作为字符串传递;如果是函数(或类似功能),则作为参数传递。 输出量 甲单个字符是“奇数”在基质中或 None,nil,NUL,或该字符串"None"如果没有“奇数”字。 更多例子 AAAAAAA AAAAAAA AAAAAAA AAAIAAA AAAAAAA 回答: I vvqvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv 回答: q puuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu 回答: p 发电机 这是用Python编写的随机矩阵生成器,可用于测试程序。注意:极有可能会出错,并且不要用奇数字母表示。 显示代码段 Instructions 1. Copy this …

13
莱文施泰因距离和OEIS(抢劫犯)
这是强盗帖子。该警察职位是在这里。 您的任务是采用整数输入N并按顺序OEIS A002942输出第N个数字。 该序列由向后写的平方数组成: 1, 4, 9, 61, 52, 63, 94, 46, 18, 1, 121, 441, ... 请注意,前导零被修剪掉了(100变为1,而不是001)。将其连接成一个字符串(或一个长数字给出): 1496152639446181121441 您应在此字符串/数字中输出第N个数字。您可以选择将N设为0索引或1索引(请说明您选择了哪一个)。 测试用例(1索引): N = 5, ==> 1 N = 17, ==> 1 <- Important test case! It's not zero. N = 20, ==> 4 N = 78, ==> 0 N = …

14
扩大数量
扩大数量 您的任务是按以下方式扩展大于0的整数: 将数字拆分为十进制数字,并根据以下规则为每个数字生成一个列表: 如果该数字为奇数,则列表以该数字开头并降为1; 如果数字是偶数,则列表以数字开头,并上升到9。 如果数字为0,则列表为空。 写下数字下方的奇数列表,偶数上方的列表。然后将各列顶部对齐,并收集每一行中的数字以制成整数。作为最后一步,将数字加起来以查找数字的扩展。 以下是适用于34607的上述规则的示例: 9 8 79 68 57 346 7 -> 399 7 -> 3997 -> 9418 2 6 288 6 2886 1 5 177 5 1775 4 66 4 664 3 5 3 53 2 4 2 42 1 1 1 这是测试用例: 1: 1 …
11 code-golf  number 

6
LaTeX真值表
编写一个程序或函数,该程序或函数接受逻辑函数的输出列表,并输出其真值表的LaTeX代码。 输入应标记为小写字母a-z,输出应标记为F。输入列表的长度将始终小于2^25,这意味着输入数量将始终小于25,因此您可以将小写字母的字母用作输入名称。 输入值 n输入数量和2^n代表逻辑功能输出的二进制数长度列表。 输出量 产生该功能真值表的LaTeX代码。输入和输出值应以行为中心。表标题及其值之间以及输入和输出之间必须有一条线,因此代码应类似于下面的代码。 \begin{tabular}{c * <NUMBER OF INPUTS>|c} <INPUTS>&F\\ \hline <INPUT VECTOR i>&<OUTPUT>\\ \end{tabular} 例 输入: 2 [0, 0, 0, 1] 输出: \begin{tabular}{cc|c} a & b & F \\ \hline 0 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 0 …
11 code-golf  math 

8
可视化包含-排除
包含-排除使您可以在知道其他一些值的情况下计算集合之间的某些并集和相交的大小。我不会确切解释,但是您的挑战是在维恩图上可视化包含-排除。 因为我很好,所以您将使用矩形,而不是圆形。 您将获得一个以任何合理格式(由4元组组成的列表,成对的列表,成对的列表等)表示的矩形列表,这些矩形由左上角和右下角的坐标表示。您可以假定所有坐标都是非负数,并且在您的语言的(合理的)数字范围内(请指定小于128的坐标)。您可以选择是左包含或左包含以及右包含或右包含。无论选择哪种格式,都可以假定所有矩形至少为1x1。 然后,您将使用一个非空白字符绘制屏幕上的每个矩形(ASCII画布)k,这是您可以选择的。 但是,每当两个矩形重叠时,重叠区域应使用另一个非空白字符绘制l != k,您也可以选择。 每当3个矩形重叠时,重叠区域应与被绘制k,以及用于奇数矩形的覆盖,k以及偶数,l。 背景应为单个空格(0x20)。 测试用例(k = "#", l = ".") 0 0 9 9 1 1 10 10 2 2 11 11 ######### #........# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #........# ######### 1 1 3 3 2 2 4 4 ## #.# ## 1 …

2
有点大陆
假设我们有一个位矩阵(至少包含一个1): 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 …

6
倒Quine!
我们都知道什么是藜。一个倒置喹是一个非空的程序,打印它的源代码不读它的源代码的倒数,和仅由可打印ASCII字符(空格通过~)。 此处,“源代码的逆序”表示以下含义:程序的输出必须包含每个可打印的ASCII字符(m-c)次,其中c是该字符在代码中出现的次数,m是最大值在代码中重复任何字符的次数。 (换句话说:您的代码 + 您的输出 = 所有可打印ASCII 的m乘以排列。) 例如,如果您的程序是12345,则m = 1,则应输出此字符串的任何排列: !"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 如果您的程序是AAB,则m = 2,那么您应该输出以下任何排列: !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~ 请注意,有两个缺失As和一个失踪B。 尽管一个包含所有可打印ASCII字符但不输出任何内容的程序是有效的反quine(满足m = 1),但是考虑到它的长度,这样的答案并不是很具有竞争力。 如上段所述,您将要编写一个反向的程序。因为这是代码高尔夫,所以以字节为单位的最短程序将获胜。祝好运!

7
简单的DTMF解码:找到电话密钥!
这是一个简单的挑战,有望带来一些创造性的答案。 引用维基百科:“双音多频信令(DTMF)是在电话设备与其他通信设备和交换中心之间的电话线上使用语音频带的带内电信信令系统。” 任务 给定下表中代表列和行频率的两个整数,您的任务是输出相应的键: | 1209 Hz | 1336 Hz | 1477 Hz -------+---------+---------+--------- 697 Hz | 1 | 2 | 3 770 Hz | 4 | 5 | 6 852 Hz | 7 | 8 | 9 941 Hz | * | 0 | # 例子 如果输入为[ 1209, 852 …

1
堆叠板
我有一堆板,需要在尽可能小的空间内堆叠。不幸的是,如果我叠放超过10块高的木板,它们就会掉下来。我需要一个程序来告诉我如何堆叠电路板,以使其占用尽可能少的水平空间,而又不堆叠超过十个高的电路板,或者使电路板悬空在空的空间上。 你的任务: 编写一个程序或函数,当给定包含板长的数组时,以ASCII艺术形式输出堆叠板以节省尽可能多的水平空间的方式,而不会堆叠超过10层高的板或任何板的任何部分板闲逛在空的空间。您的ASCII艺术作品应显示板子的配置,每块板子使用不同的字符显示。最多有20个板。例如,如果输入为[2,2,4,2,2,4,4,4,4],则可能的输出为: dhh dgg dff dee abc abc abc abc 这是一个稳定的配置(尽管在现实生活中,它会在约0.1秒内掉落)。 输入: 一个包含最多20个整数的数组,显示木板的长度。 输出: 如上所述,显示板配置的ASCII文字。 测试用例: 请注意,对于测试用例,可能还有其他解决方案,并且每块板上显示的字符可能不同。 [12,2,2,2,3,4,4,8,8] -> ffgghhiii ddddeeeeeeee bbbbbbbbcccc aaaaaaaaaaaa [4,4,4,4,4,4,4,4,4,4,4,4] -> llll aaaa cfghk cfghk cfghk cfghk debij debij debij debij [4,4,4,4,4,4,3,3,3,2,2,2,1] -> jjml iiil hhhk gggk ffff eeee dddd cccc bbbb aaaa 得分: 这是代码高尔夫,最低得分(以字节为单位)获胜

14
ASCII飞机横幅
给定两个输入-其中一个非空打印的ASCII字符串(包括空间,不包括换行),两个不同的,你的选择(一致值的另一个是一个1 / 0,l / r,left / right等) -输出一个ASCII技术飞机字符串的横幅,指向左侧或右侧。为了保持一致性,我将使用left和right整个挑战描述。 平面是|-DI>-/(left)或\-<ID-|(right)。由于标语是清晰的,因此它由输入字符串的字符组成,这些字符由空格分隔,从左到右(left)或从右到左(right),并用形状框包围 /--/ ---< < \--\ 要么 \--\ > >--- /--/ 注意必须有消息的开始/结束和之间有一个空格>,<字符。 例如,这是消息HAPPY BIRTHDAY!和方向left: /-------------------------------/ |-DI>-/---< H A P P Y B I R T H D A Y ! < \-------------------------------\ 这是消息PPCG和方向right。请注意,从横幅广告的这一面查看时,字母显示为“向后”: \---------\ > G C P P >---\-<ID-| /---------/ 规则 前导或尾随的换行符或空格都是可选的,只要字符本身正确对齐即可。 …

1
平面图!
免责声明:这个问题中讲的故事完全是虚构的,仅出于介绍目的而发明。 我有一个朋友,他是建筑师,在向他解释了代码高尔夫的概念和这个站点之后,他说我应该编写一些对变更有用的东西。我问他他认为有用吗?作为一名建筑师,他回答说,他很喜欢拥有一个平面规划师,该规划师为他提供了在一定尺寸的房屋中布置一定尺寸的房间的所有可能方案。我以为我将证明代码高尔夫球毕竟不是没有用,并以尽可能少的字节数为他提供此程序。 你的任务: 编写一个程序或函数,当给定包含整个房屋尺寸的数组D和包含内部房间尺寸的第二个数组R时,以ASCII艺术形式输出房屋内部房间的所有可能配置。 所有房间和房屋的外墙应形成为标准ASCII框,并使用| 垂直墙为-符号,水平墙为-符号,拐角为+符号。例如,尺寸为[4,4]的房屋看起来像: +----+ | | | | | | | | +----+ 如您所见,拐角不算作一组尺寸的一部分。-或|的数量 构成侧面的字符应等于尺寸中给定的数字。房间可以与房屋共用墙壁,也可以与房屋共用墙壁。房间内可能没有较小的房间。 例如,配置 +--+---+-+ | | | | | | | | +--+---+ | | | | | +--------+ 对于D = [5,8]和R = [[2,2],[2,3]]有效。 输入: 两个数组,其中一个包含两个整数(房屋的尺寸),另一个包含一系列包含房间尺寸的数组。 输出: 将所有可能的房屋组成的数组作为字符串,或者包含所有可能的房屋的字符串以某种一致的方式定界。请注意,完全相同配置的旋转次数仅应计算一次。 测试用例: D R -> Output [4,3] …

15
反转串!
您的任务:编写一个程序/函数,当给定仅包含ASCII字符的字符串时,将以反白的方式输出/返回该字符串。 例: 1)输入 Hello, World! 2)在输入中为唯一字符编号。(输入字符串之间用竖线(|)分隔,以提高可读性) H|e|l|l|o|,| |W|o|r|l|d|! 1 2 3 4 5 6 7 8 9 10 3)对于重复字符,请查找该字符的第一个匹配项,并用与第一个相同的数字对重复的字符进行编号。 H|e|l|l|o|,| |W|o|r|l|d|! 1 2 3 3 4 5 6 7 4 8 3 9 10 4)颠倒字符串,但不颠倒数字。 !|d|l|r|o|W| |,|o|l|l|e|H 1 2 3 3 4 5 6 7 4 8 3 9 10 …
11 code-golf  string 

18
请填写空白!
(不,不是这个也不是任何这些) 给定一个字符串和一个字符串列表,用相应的字符串填充输入字符串中的所有空格。 输入输出 输入字符串仅包含字母字符,空格和下划线。它是非空的,并且不以下划线开头。换句话说,输入字符串与正则表达式匹配^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$ 输入列表中的每个字符串都是非空的,并且仅包含字母数字字符和空格。换句话说,它们匹配正则表达式^[a-z A-Z]+$。 空白是下划线(_)的连续序列,下划线()之前或之后都没有。 输入字符串包含n一些正整数的空格n,字符串列表恰好包含n字符串。 通过将k输入字符串中的每个-th空格替换为输入字符串k列表中的-th字符串来获得输出。 例 给定一个输入字符串"I like _____ because _______ _____ing"和一个字符串列表["ice cream", "it is", "satisfy"],我们可以找到如下输出: 第一个空格紧随其后"like "。我们"ice cream"用来填充它"I like ice cream because ______ _____ing"。 第二个空格紧随其后"because "。我们"it is"用来填充它"I like ice cream because it is _____ing"。 第三个空格紧随其后"is "。我们"satisfy"用来填充它"I like ice cream because it is …

1
循环多语种挑战(警察)
循环多语挑战 这是警察线。您可以在此处找到强盗线程。 循环多色 N元素循环多语言是一个完整的程序,可以用N种不同的语言运行。在每种语言中,如果程序在没有输入的情况下运行(可能会遇到此异常),则应将一种语言的名称打印到STDOUT。具体来说,如果程序以第K种语言运行,则应打印第(K + 1)种语言的名称。如果程序以第N种语言(即,第N个元素循环中的最终语言)运行,则应打印第一种语言的名称。 一个例子可能是有用的。 a = [[ v = 7, puts('Befunge') ]] __END__ = print("Ruby") -->*+:292*++,,@ --3 9 --7 * --^,:-5< 使用Lua运行该程序将打印字符串“ Ruby”。在Ruby中运行该程序将打印字符串“ Befunge”。在Befunge中运行此程序将打印字符串“ Lua”,从而完成循环。该程序构成一个由Lua,Ruby和Befunge组成的3个循环。 相同的语言不能在一个周期中出现两次,并且同一语言的不同版本(例如Python 2和Python 3)不能在相同的周期中出现。 警察 您的挑战是编写一个N循环多图,其中N至少为2。然后,您必须在程序中添加,替换和删除一些字符,以生成M循环多图,其中M严格大于N然后,您应该发布较短的N循环多语种(及其运行的语言),以及为产生更长的多语种而更改的字符数。您的分数为N,即较短周期中的语言数量。 强盗将尝试确定您的更长周期。如果七天后没有人成功破解您的解决方案,则应编辑答案以声明它是安全的。您还应该在此时发布更长的M循环多语种。 强盗 给定一个警察的N循环多语种和他们添加的字符数以产生更大的多语种循环,您的目标是产生一个更大的循环。如果您可以通过添加,删除或替换与警察一样多的字符或更少的字符来产生更长的周期,则可以破解警察的多语种。您的分数是您创建的新周期的长度。您的新杂音不必与警察的秘密杂音相同或什至相似;它只需要比现有的更大。 您的解决方案也可能被破解。如果从同一个警察的通配语言开始,另一个强盗出现了,并且产生了一个比您严​​格更长的周期,那么他们就盗走了您的积分。 有效的编程语言 由于此挑战间接涉及猜测其他参与者使用的编程语言,因此针对此挑战的目的,编程语言的定义将比通常的定义更为严格。挑战中使用的编程语言必须满足以下所有条件。 该语言必须满足编程语言通常的PPCG要求。 在发布此挑战时,该语言必须具有Wikipedia文章,Esolangs文章或Rosetta Code文章。 该语言必须具有免费的解释器或编译器。 最后说明 您编写的代码应该是打算以每种语言运行的独立程序。不允许使用功能或代码段。 您的程序不会通过STDIN得到任何输入。同样,您的程序应不打印任何内容到STDERR。 警察的分数是他们发布的多种语言周期中的语言数量。警察应该张贴正确发布的多语种的语言,以及他们添加以产生更长的多语种的字符数。他们不负责发布语言,因为隐藏的多语种运行时间更长,直到答案安全为止。 强盗的分数是修改后的多语言运行所使用的语言的数量。与警察一样,强盗应张贴多语言正常运行所使用的语言的列表。 更改的字符数应以Levenshtein距离计算。

7
计算周期数组
的period一个字符串的是最短的非零移位,使得字符串匹配本身,忽略任何份该突出端。因此,例如,abcabcab具有period 3。按照惯例,如果没有这种移位,则字符串的周期等于其长度。因此,时期abcde为5和时期a为1。 用更正式的术语来说,字符串的周期S是最小的,i > 0因此S[1,n-i] == S[i+1,n](从索引1)。 对于给定的具有两个长度的幂的字符串S,我们将计算其所有具有两个长度的幂的前缀的周期。例如,考虑S = abcabcab。我们将计算的周期为: 'a', 1 'ab', 2 'abca', 3 'abcabcab', 3 实际上,我们将仅输出周期数组,即[1, 2, 3, 3]。 对于给定的2的正幂n,请考虑所有可能的二进制字符串S。回想一下,二进制字符串只是1s和0s 的字符串,因此恰好有2^n这样的字符串(即2幂n)。对于每个,我们都可以计算这一周期数组。 挑战在于编写以n(2的幂)为输入的代码,并计算有多少个此类数组。 的答案n = 1, 2, 4, 8, 16, 32, 64, 128是: 1, 2, 6, 32, 320, 6025, 216854, 15128807 的不同周期数组的完整集合n = 4是: 1, 1, 1 1, …

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.