编程拼图和代码高尔夫

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

30
信速
给定一个字符串作为输入,请打印一个新字符串,每个字母的各自字母索引将其推到右侧。 我们都知道A是一个慢字母,Z是一个快字母。这意味着Z向右偏移25个空格,A根本不偏移,而B偏移了1个空格。 您的程序只需要处理AZ的大写字母,没有其他字符,空格,标点符号。 请注意,如果在移位后2个或更多字母落在同一空格上,则会使用最新字符。(例如:BA-> A) 例子 "AZ" -> "A Z" "ABC" -> "A B C" "ACE" -> "A C E" "CBA" -> " A" "HELLOWORLD" -> " E H DLL OLO R W" 规则 这是code-golf,因此以任何语言字节中的最短代码为准。 禁止出现标准漏洞。 输入必须以字符串形式接收。 您可以将结果打印到stdout或返回字符串。 允许使用单个尾随空格和/或换行符。 您也可以使用小写字母作为输入或输出,但只能使用任何一种情况。
43 code-golf  string 

6
岛屿高尔夫#1:环游世界
这是Island Golf系列挑战中的第一个。下一个挑战 给定ASCII艺术形式的孤岛,请输出对其进行绕行的最佳路径。 输入项 您的输入将是一个由两个字符组成的矩形网格,分别代表土地和水。在下面的示例中,土地是#,水是.,但是您可以替换任意两个不同的字符。 ........... ...##...... ..#####.... ..#######.. .#########. ...#######. ...#####.#. ....####... ........... 始终将至少有一个地砖。地砖将是连续的(即只有一个岛)。瓷砖也将是连续的(即没有湖泊)。网格的外边界都是水瓦片。地砖将不会以对角线连接:即,您将永远不会看到类似 .... .#.. ..#. .... 输出量 您的代码必须输出相同的网格,并在其上画出最短的环绕。在下面的示例中,环行路径用绘制o,但是您可以替换任何字符,只要它与您的水陆字符不同即可。 一个环游是一个简单的封闭曲线,完全是靠水的瓷砖画,能够完全包围在网格中的所有土地的瓷砖。对角线的连接被允许的。例如,这是上述岛屿的环游世界(但不是最短的一个): .ooooo..... o..##.oo... o.#####.o.. o.#######o. o#########o ooo#######o ..o#####.#o ..oo####..o ....oooooo. 环行的长度计算如下:对于路径上的每对相邻的图块,如果它们是水平或垂直连接的,则加1;否则,为0。如果对角连接,则加√2。以上路径的长度为22 +7√2(≈31.9)。 甲最短环游是用最短的长度的环游。您的程序应输出满足此条件的任何一条路径。对于大多数岛屿,将有多种可能的解决方案。这是上述岛的一种解决方案,长度为10 +13√2(≈28.4): ...oo...... ..o##oo.... .o#####oo.. .o#######o. o#########o .o.#######o ..o#####.#o ...o####.o. ....ooooo.. 细节 您的解决方案可能是完整程序或功能。任何默认的输入和输出方法都是可以接受的。 您的输入和输出可以是多行字符串或字符串列表。如果您的语言具有不同于单字符字符串的字符类型,则可以在上一句中用“字符列表”代替“字符串”。如果您的语言需要输入网格的高度和/或宽度,则可以输入。您的输出可能(可选)有一个尾随换行符。如上所述,您可以使用任何三个不同的字符来代替#.o(请在提交中指定要使用的字符)。 测试用例 A.环游时间最短的岛屿: ... …

3
建立美观的除数树
美观的除数树是输入的除数的树n,对于任何合数m,具有的两个孩子的节点对除数是最接近的平方根的m。左节点应为的较小除数,m右节点应为的较大除数m。树中的素数不应有子节点。您的树可能是文字艺术或图像的形式。文字艺术输出的规则如下。 间距规则 为了使树上的节点间隔开,我们有以下规则: 从根到给定深度的节点应全部位于输出中的同一行文本上。 / \不/ \ / \ / 3 2 3 2 对于左节点,如果节点是一个数字,则输入分支应该在右上角,否则在最后一个数字的正上方。例: /与/ 3720 对于右边的节点,如果节点是一位数字,则输入分支应该在左上角,否则在第一位数字的正上方。例: \ AND \ 7243 对于传出的左分支,分支应在数字左侧开始一个空格。例: 275 / 11 对于传出的右分支,分支应在数字右边开始一个空格。例: 275 \ 25 树的同一层上的任何两个节点之间至少应有两个空格。同时,在树的同一层上的任何两个子树之间的空间应尽可能少。 该树不起作用,因为“子树”太近了。 504 / \ / \ / \ / \ 21。24 / \。/ \ / \。/ \ 3 7. …

24
输出程序中每个输入字符的第一个位置
挑战 编写一个非空程序/函数p,给定一个非空输入字符串s,该程序/函数输出的源代码中的每个字符第一次出现的位置。sp 例如,如果您的程序是 main() { cout << magic << cin } ^0 ^5 ^10 ^15 ^20 ^25 它收到一个输入abcd{,输出应该是 [1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based) 在此,x表示任何不是字符位置有效输出的输出(例如,负数,0如果您使用基于1的索引,则NaN,Inf字符串potato,大于程序长度的数字等)。 限制条件 不允许读取源代码(如适当的quine)。允许使用评论,但会计入您的分数。 输入和输出可以在一个合理的形式进行,但必须是明确的(唯一的额外分隔符,没有rand流,并声称,答案是在那里的地方),一致(例如,x从上面应该始终是相同的值)和人-可读性 ; 例如字符串或字符数组。您可以假设输入是可打印ASCII字符的字符串(或数组);无需处理整个Unicode集。 自定义代码页或代码中不可打印的ASCII? 如果您的语言使用自定义代码页(Jelly,APL等),则必须将其考虑在内(因此,程序€æÆ必须[1, x, 2]为input输出€%æ)。仅使用非ASCII字符-1始终输出(因为输入仅是ASCII)不是有效的解决方案。您可以假定您的程序本机接受您的自定义代码页,即,如果您的程序具有将字符转换为A整数65(ASCII编码)的方法,则可以假定它现在将代码页中的第65个字符转换为65。 受到以下挑战的启发:位置意识

30
位运行减少
给定一个整数n > 0,以0或1以其二进制表示形式输出最长连续序列的长度。 例子 6用110二进制写;最长的序列是11,所以我们应该返回2 16→交通10000→交通4 893→交通1101111101→交通5 1337371→交通101000110100000011011→交通6 1→交通1→交通1 9965546→交通100110000000111111101010→交通7

30
闪烁十二
12:00未设置时间时,许多电子设备(特别是旧的电子设备)将闪烁。挑战的目的是重新创建它。 具体来说,任务是显示12:00并--:--无限循环显示。 的周期应该是1秒,在0.5秒的两个周期均匀地划分。在这里,“ 1秒”和“均匀”可以被宽松地解释。例如,代码在显示字符串之间暂停0.5秒是可以接受的,即使所得到的时间间隔会稍大于1秒。在显示第一个字符串之前的初始暂停是可以接受的。 每一个新的字符串可以通过显示取代原有的字符串或在一个新行。允许尾随空格,除非每个新字符串在不同的行上,否则连续的字符串之间不应有空行。 以字节为单位的最短代码获胜。

30
计算“标准高尔夫”问题的难度
简报 高尔夫球法典问题的难度可以这样计算: v问题的观看次数在哪里 这a是一个问题的答案数 和⌈ X ⌉是天花板操作。 也: 这个问题的当前难度:*** 任务 编写一个将使用两个整数(v and a)并输出的难度的程序asterisks (*)。 输入可以采用数组,分隔字符串或分隔函数参数的形式 测试数据 Views Answers Difficulty Program Output 163 2 2 ** 548 22 1 * 1452 24 1 * 1713 37 1 * 4162 32 2 ** 3067 15 3 *** 22421 19 10 ********** 伪代码示例 …
43 code-golf  math 

4
计算机生成的破裂土壤
编写一个程序,该程序使用0到65535之间的整数(2 16 -1),并生成一个独特的 500×500像素的图像,该图像看起来与以下6个破裂土壤的真实生活图像尽可能相似: 这些是缩略图,单击它们可查看完整的500×500图像。 目的是使您的计算机生成的图像尽可能逼真。因此,理想情况下,如果程序输出的任何图像都与上面的6张图像混合在一起,那么第一次看到这些图像的人将无法分辨出计算机生成的图像与真实图像。 完美的写实主义是棘手的,因此请尽力而为。这是一场人气竞赛,因此,具有更切合实际的输出结果的答案将被更多地投票,并且更有可能获胜。 规则 您可以使用图像处理功能或库。 您可以基于从6个样本图像中收集的信息来建立算法,但是65535(2 16)可能的输出图像在视觉上应与样本图像彼此不同,尤其是在裂缝排列方面。您必须真正生成图像,而不仅仅是旋转并转换现有照片中的选择。 您不应该以其他方式对输出进行硬编码。应该使用通用算法,并且大于65535的数字理论上应该产生有效的输出。(我已将其限制为仅容纳最小最大整数类型。) 输入整数可以认为是产生随机裂化的土壤输出图像的种子。但是,它应该是确定性的,因此相同的输入应始终导致相同的输出。 输出图像必须恰好是500×500像素。 输出图像可以以任何常见的图像文件格式保存或简单显示。 确保在答案中包含一些示例输出图像及其相应的输入数字。 得票最多的答案将获胜。投票者当然应该对试图产生类似于6个样本的图像的答案进行投票,并对破坏规则或给出不一致结果的答案进行投票。 这6个样本图像取自texturelib.com。从两个较大的破裂土壤图像中选取了1000×1000像素区域,然后将其调整为500×500。您可以在程序中使用这些较大图像的分析结果,但输出应专门模仿6个选定的样本图像。

30
你能打败我吗?(强盗专区)
强盗区 警察部门可以在这里找到。 挑战 您的任务是以相同的语言和相同的版本(例如,Python 3.5 ≠ Python 3.4,所以这是不允许的)使警察提交的文件超越。当以字节为单位的长度比原始提交短时,提交将超出配音。您只需要打高尔夫球至少1个字节即可破解提交。例如,如果任务是执行2× n,则提交如下: print(2*input()) 您可以通过执行以下操作使警察胜过警察: print 2*input() 甚至这样(因为允许使用lambda): lambda x:2*x 使用以下标头将此发布: ##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link} 例如: Python 2中,16 12个字节,阿德南(+链接提交) lambda x:2*x 计算A005843,(偏移量= 0)。 在这种情况下,您已经破解了提交。 计分 提交最多的人是获胜者。 规则 破解提交必须使用与警察提交相同的语言。 相同的输入应该导致相同的输出(因此a(2)= 4应该保持4)。 对于Python之类的语言,您可以导入该语言中标准包含的库。(因此,没有numpy / sympy等。) 输入和输出均为十进制(以10为基数)。 注意 挑战完成了。强盗部分的获胜者是feersum。CnR的最终分数如下所示: feersum:16条裂缝 …

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

10
字形矩阵
作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量: 您的任务是获取矩阵(不一定是正方形)并以展开形式返回。举个例子: [1 2 3 4 5 6 7 8 9 1 2 3] 应该屈服 [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3] 规则 您可以假设矩阵元素是小于的正整数10。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入矩阵可以任何方便,明确,嵌套的列表或字符串格式给出,也可以与两个矩阵维一起作为平面列表给出。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。) 输出向量可以是任何方便,明确,平坦的列表或字符串格式。 适用标准代码高尔夫球规则。 测试用例 [[1]] => [1] [[1 2] [3 1]] => [1 2 3 1] [[1 2 3 1]] …

9
与Rubik's一起骑车
我儿子闲着扭动魔方时,发现魔方一直回到已解决状态。我很确定他一开始就认为这是某种巫术魔术,但我解释说,如果继续重复相同的动作顺序,它将始终返回其原始状态。最终。 当然,作为一个孩子,他不得不自己尝试一下,并选择了一个他认为很棘手的“随机”序列。在大约十次重复之后,他迷失了方向,问我要重复几次。我不知道他使用的顺序,我告诉他我不知道,但是我们可以编写一个程序来找出答案。 这就是您要进入的地方。当然,我可以打些东西,但他想自己打。但是,他不是一个很快的打字员,所以我需要尽可能短的程序。 目的 给定一系列旋转,输出必须执行的次数最少,才能使多维数据集返回其原始状态。这是代码高尔夫,因此最少字节获胜。您可以编写程序或函数,所有其他通常的默认设置都适用。 输入项 输入是一系列动作,采取字符串,列表或其他适合您的语言的格式。如果采用字符串形式,请在移动之间随意使用分隔符(或不使用分隔符)。 必须考虑六个“基本”动作及其相反的动作: R - Turn the right face clockwise L - Turn the left face clockwise U - Turn the up (top) face clockwise D - Turn the down (bottom) face clockwise F - Turn the front face clockwise B - Turn the back …

18
Universal Spooky Meme Translator
介绍 事实证明,外星人像我们一样爱模因。到目前为止,我们遇到的每一个外星人种族都有自己的版本2spooky4me(请参见以下问题)和等效版本,但有所不同。CUTE1f星球上的居民无法承受很多鬼怪,因此他们更喜欢1spooky2me鬼怪,而skeletor7的迷们喜欢它们一些鬼怪,因此他们倾向于使用9spooky11me。 挑战 翻译模因是一项艰苦的工作,因此您要编写一个通用的模因翻译器,以帮助这些人正确访问模因网。您的程序将接受一个模因和一个变换,以应用于该模因中的数字序列,以使其适合其他星球的居民。 输入项 您的程序将收到两个字符串输入: 输入模因(例如2spooky4me)。火柴[a-zA-Z0-9]+。 要应用的转换(例如+1,从2spooky4me到3spooky5me)。匹配[+\-*/^]\d+(你必须接受+,-,*,/,并^为运营商,无论在你的语言本地表示的)。 输出量 您的程序必须返回字符串输出(打印到标准输出或等效输出),并将给定的转换应用于输入模因中的数字序列。在一系列怪异的事件中,结果还表明,到目前为止遇到的所有种族都喜欢积分模因而不是分数模因,因此这些转换应执行整数算术(例如1spooky1me /2应该产生0spooky0me)。 例子 标准算术运算适用: Input: 2spooky4me +1 Output: 3spooky5me Input: 2spooky4me -1 Output: 1spooky3me Input: 2spooky4me *15 Output: 30spooky60me Input: 10spooky900me /5 Output: 2spooky180me 数字序列是不可或缺的;整数截断应在以下情况下发生: Input: idontunderstandmemes3 /2 Output: idontunderstandmemes1 您的输入内容可能没有任何数字序列: Input: notreallyafunnymeme *100 Output: notreallyafunnymeme 即使您选择的语言不是本机运算,您也必须支持幂运算: Input: 2spooky4me ^3 Output: …

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

9
沙漏挑战
沙漏 这个沙漏有60个“时间沙”,它完全充满了每个小室。时钟宽19个字符,高13个字符。每个腔室有5排沙子,中间有一行可容纳1块沙子。最上面一行可容纳17个沙子,下一行可容纳15个,依此类推(请参阅下文)。沙子以每秒一沙的速度掉入底部腔室。 START 3 SECONDS LATER 38 SECONDS LATER ███████████████████ ███████████████████ ███████████████████ █.................█ 17 █.............. █ 14 █ █ 0 ██...............██ 15 ██...............██ 15 ██ ██ 0 ███.............███ 13 ███.............███ 13 ███....... ███ 7 █████.........█████ 09 █████.........█████ 09 █████.........█████ 09 ███████.....███████ 05 ███████.....███████ 05 ███████.....███████ 05 █████████.█████████ 01 █████████.█████████ 01 …

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.