Questions tagged «source-layout»

对于涉及源代码的物理布局或物理处理的挑战。

2
查克·诺里斯(Chuck Norris)vs旅行推销员
介绍 几乎每个人都熟悉旅行商问题(TSP)。任务是在给定N城市列表的情况下,找到最小的汉密尔顿周期,这就是访问每个城市并返回到起点整圈的最短路径。这不是这个挑战的目的。挑战在于如何实现Chuck Norris 的TSP 解决方案: 查克·诺里斯(Chuck Norris)O(1)及时解决了旅行推销员问题:将推销员分为N个;踢每件到另一个城市。 挑战 为了以这种方式解决TSP,我们需要一个足够耐用的推销员,该推销员不会回避肢解之类的琐事。许多城市参观;一套要出售的产品;肢解的具体方法;并计算得分。 规格 城市 N 是我们的业务员将拜访的引用数量 推销员 主程序或功能 用语言写 X 长度N等于0 产品展示 元素的全名元素周期表中 这包括新接受的元素名称 肢解 将推销员切成 N等长的连续片 每个部分都应该是有效的语言功能或程序 X 输出量 执行后,推销员应输出 Chuck Norris,切成薄片的每个应输出不同的产品 仅多余的尾随空格 计分 L推销员的长度(字节)除以城市数量(N)的平方。 Score = L/(N*N) 最低分获胜 发布十进制分数时,请包含3个有效数字 例子 该推销员大约访问了3个城市N=3,并且长度为9个L=9。因此,此答案的分数将是S = 9 / (3 * 3) = 9/9 = 1。 …

6
运行第N个字符可获得N
编写尽可能短的程序,这样,当您将第一个字符和其后的每个第N个字符组合到一个新程序中时,输出为N。这必须适用于N = 1、2,...,16。 换句话说,如果从程序中删除除第一个字符外的所有字符,然后再去除第N个字符,则其余代码的输出应为N。 例 如果您的代码是 ABCDEFGHIJKLMNOP N = 1导致ABCDEFGHIJKLMNOP。运行该命令应输出 1。N = 2导致ACEGIKMO。运行此命令将输出 2。N = 3得出结果ADGJMP。运行此命令应输出 3。N = 4将得出AEIM。运行此命令将输出4。N = 5导致AFKP。运行此命令应输出5。N = 6得出结果AGM。运行此命令应输出6。N = 7得出结果AHO。运行该命令应输出7。N = 8导致AI。运行此命令应输出8。N = 9得出AJ。运行此命令应输出9。N = 10的结果为AK。运行此命令应输出10。N = 11得出结果AL。运行它应该输出11。N = 12结果AM。运行此命令应输出12。N = 13得出结果AN。运行此命令应输出13。N = 14得出结果AO。运行此命令应输出14。N = 15得出结果AP。运行此命令应输出15。N = 16的结果为A。运行它应该输出16。 细节 允许所有字符,包括ASCII和非ASCII。(还允许使用换行符和不可打印的ASCII。请注意,回车和换行符应作为不同的字符计数。) 分数是未更改程序的长度(以字符为单位)(例如15)。最低分获胜。 分数低于16显然是不可能的,因为那时至少有两个更改过的程序是相同的。 输出可能是文件或stdout或其他任何合理的结果。但是,这16个不同程序的输出必须全部转到相同的位置(例如,如果AO转到stdout而不是A转到文件,则不可以)。没有输入。 输出必须为十进制,而不是十六进制。实际输出应仅包含1或2个字符,这些字符构成从1到16的数字。(像Matlab这样的东西ans =都可以。) …

21
可逆换向器
您的任务很简单。该程序从标准输入中读取一行文本,并以字符反转的形式打印出相同的文本。不允许打印其他任何东西。 例如: 输入:“ Hello!”,输出:“!olleH” 要注意的是,如果源代码本身是字符反转的,则您的程序必须能够执行完全相同的操作! 评分:应用标准的代码高尔夫评分,并进行了以下修改以限制无聊 //margorp program// 风格答案:任何回文解决方案都会对分数加+ 25%,四舍五入。例如,如果您在程序中插入没有任何作用的字符,只是为了打破回文,这种惩罚仍然适用。

4
建立一个半基数循环奎
半基数环状喹是具有两种状态的环状喹,一种与另一种垂直。 规则 您可以决定要实现的旋转是顺时针还是逆时针。 旋转后,应将代码中的任何空格替换为空格以保留位置。 您的程序必须满足quine的社区定义。 这是代码高尔夫球,因此每种语言中最短的程序将获胜。您的第一个程序用于您的字节数。 禁止出现标准漏洞。 例子 如果您的程序是: $_='print';eval 然后,下一个迭代必须是: $ _ = ' p r i n t ' ; e v a l 要么 l a v e ; ' t n i r p ' = _ $ 必须输出原始程序: $_='print';eval 如果您的程序是: ;$_='; ;$_='; print 然后,下一个迭代必须是: ;; …

7
俄罗斯嵌套奎因
一个俄罗斯嵌套娃娃,通常被称为一个俄罗斯套娃,是包含一个缩小版的自己,一个洋娃娃,然后包含自己的另一个较小的版本,其中包含一个较小的版本的本身,它包含自身的缩小版,其本身包含一个较小的版本...-直到最后一个,最后一个为空。一个例子: 今天,您的目标是通过编写一个程序或函数来模仿这种俄罗斯传统,当该程序或函数包含N次时,将打印包含N-1次自身的副本。 例如,玩偶程序abcd将具有N = 3程序abababcdcdcd,该程序将打印N = 2程序ababcdcd,该程序将打印原始的N = 1程序abcd,最后打印N = 0的程序,该程序为空。从理论上讲,这应该适用于任何合理的N值。 规则: 这是一个TIO程序,可帮助您根据程序生成玩偶程序 适用标准Quine规则 适用标准漏洞 “包含”是指直接在先前版本的中心,因此您的解决方案必须具有正偶数个字节。长度为10的程序将在第五个字节之后插入原始副本,然后在第十个字节之后插入另一个副本,依此类推。 输出中允许单个尾随空格 由于这是code-golf,因此您的目标是使N = 1程序尽可能短。 您的代码的解释将不胜感激

20
在干草堆中找到针(强盗)
这是警察和强盗挑战的一部分。去这里参加警察的活动。 强盗的挑战 可以通过从Haystack程序中删除字符的任何子集来破解警察的答案,以便输出Needle而不是Haystack(尽管仍然是使用相同语言的有效提交)。只要您受上述限制的约束是有效的,就不必找到与警察完全相同的解决方案。 如果您可以管理此问题,请在解决方案中发布答案,并链接到警察的答案,然后对警察的答案发表评论,并链接回您的答案。 破解最多警察答案的强盗获胜。领带被破解的警察答案的大小之和打断(赞成强盗破解更长的提交内容)。 每个警察的答案只能破解一次,当然,您也不能破解自己的答案。如果警察的答案在被破解之前或之后被证明是无效的,则不计入强盗的分数。 例子 这是几个使用不同语言的简单示例: Ruby Haystack: puts 1>0?"Haystack":"Needle" Delete: XXXXXXXXXXXXXXX Needle: puts "Needle" Python 2 Haystack: print "kcatsyaHeldeeN"[-7::-1] Delete: XXXXXXXX XX Needle: print "eldeeN"[::-1] 请注意,已删除字符的子集不必是连续的。

18
“你好,世界!”(其他角色,第2部分)
作为《你好,世界》的第二部分 (每个其他字符),编写一个程序,使所有这三个程序都显示“ Hello,World!”:整个程序,程序的第1,第3,第5等字符,以及第2,第4,第6,等等 如果您的程序是: abc def 它应该输出“ Hello,World!”,但是应该输出 acdf 和 b e 内置的“ Hello,World!”没有解决方案。

4
打印代码的负号
(这是“ 打印否定代码”的一种变体,我很喜欢它!感谢MartinBüttner♦ -几乎所有文本都是他的。) 让我们考虑这些符号为以下可打印的ASCII字符(请注意其中包含空格): !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 和字母数字是这些: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 考虑边长为N的正方形可打印ASCII字符,如下所示: ONE, {two} &3,+= !four f|ve. 我们还要求每一行和每一列至少包含一个符号和一个字母数字。(以上示例满足了此要求。) 我们将此类正方形的符号负数定义为相同大小的正方形,其中每个符号均被字母数字代替,反之亦然。例如,以下将是上述示例的有效符号否定符号: [&]OK a...b 1/100 i@#$% (R) z 特定字符的选择无关紧要,只要它们在上述类别中即可。 挑战 您的任务是编写一个边长为N> 1的方形源代码程序,该程序会将其源代码的符号负输出到STDOUT。必须打印尾随空格。您可能会或可能不会打印单个尾随换行符。 普通的规则也适用,因此您不得直接或间接阅读自己的源代码。同样,您不能假定REPL环境会自动打印每个输入表达式的值。 获胜者是边长最小的程序。如果出现平局,则以源代码中符号最少的提交为准。如果仍然有平局,则最早的答案会获胜。

15
我乘以源,您(可能)乘以输出!
任务 任务是编写一个程序,该程序输出一致但任意的正整数xXx(因此严格大于0)。这是要抓住的地方:当源重复NñN次(代码被附加/串联N−1ñ-1个N-1到自身)时,程序应该具有的输出的概率以及剩余的概率。输出不变。1N1个ñ\dfrac{1}{N}N⋅xñ⋅XN\cdot xN−1Nñ-1个ñ\dfrac{N-1}{N}xXx 例 假设您的初始来源是XYZ并产生integer 3。然后: 对于:还应该输出的概率为(50%的时间),并输出的概率也为(50 % 的时间)。N=2ñ=2N=2XYZXYZ333121个2\frac{1}{2}2⋅3=62⋅3=62\cdot 3=61212\frac{1}{2} 对于N=3N=3N=3:XYZXYZXYZ应输出333的概率为2323\frac{2}{3}(的时间66.666%)和3⋅3=93⋅3=93\cdot 3=9的概率为1313\frac{1}{3}(33.333%的时间) 对于N=4N=4N=4:XYZXYZXYZXYZ应输出333的概率为3434\frac{3}{4}(的时间的75%)和4⋅3=124⋅3=124\cdot 3=12 的概率为1414\frac{1}{4}(25%的时间) 等等.... 规则 您必须构建一个完整的程序。输出必须打印到STDOUT。 从理论上讲,您的程序应输出具有上述概率的每个可能值,但是由于实现了随机而与之略有偏差是可以的(前提是实现的分布不相同-您不能使用正态分布以节省字节)。 该程序应该(再次,理论上)适用于任意大的NNN值,但是由于精度引起的技术限制对于大NNN是很好的。 输出必须以10为底(禁止以其他任何底数或以科学计数法输出)。允许尾随/前导空格和前导零。 初始来源(当然)必须至少为1个字节长。您可能不会在源副本之间使用换行符。该程序不应接受输入(或具有未使用的空输入)。 这是代码高尔夫球,因此答案的分数是(原始)源的长度(以字节为单位),分数越低越好。 注:此挑战的(多)更难版这一个。

15
扩展真理机
许多人知道编程中的真机。但是现在是时候让我们努力了。介绍,扩展的真机!扩展的真理机器将两件事作为输入,一个整数n和一个非空字符串s。输出s n带有可选尾随空格的时间。但是,如果n等于0,则必须输出,s直到手动停止程序为止,即永远不要终止它。 另外,如果n为负数,则字符串需要颠倒。例如,使用s=helloand n=-1,输出将为olleh。 输入的标准方法,任何种类的输出,只要可以处理无限。如果您的答案不能处理无限大,请在有趣的情况下或以无法处理无限大输出的语言随意发布。 测试用例 n, s, output 5, "hello world", "hello worldhello worldhello worldhello worldhello world" 0, "PPCG", "PPCGPPCGPPCGPPCG..." -2, "truThY", "YhTurtYhTurt" 2000, "o", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" 这是代码高尔夫球,所以最短的代码获胜! 这是原始的沙盒帖子。已对其进行了编辑。感谢@ComradeSparklePony创建了这个挑战的想法

7
做一个交织的奎因
您的任务是创建一个程序,该程序在运行时将自身作为输出返回(这被称为quine)。但是,此quine必须在被复制n次数时返回该quine,但是其每个字符都必须重复放置n时间,其中n是一个正整数。 如果您的原始程序是Derp: Derp -> Derp (must return itself as output to be a quine) DerpDerp -> DDeerrpp (the "Derp" is copied twice, so each character in the output has to be copied twice) DerpDerpDerp -> DDDeeerrrppp etc. etc. 请记住,您可以在“基本”程序中使用空格,但是在“交织”时将其计为空格。说你的程序是 Derp {newline} (换行符表示末尾的换行符,并且后面有多余的空格Derp)。当复制成为 Derp Derp {newline} 您必须输出 DDeerrpp {newline} {newline} 请记住,。2之后还有多余的空格DDeerrpp。 …

13
逆排列索引
介绍 具有n个元素的列表的字典排列可以从0到n编号!-1.例如3!= 6个置换(1,2,3)将是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现revind(x)。您将编写一个完整的程序或函数,以单个非负整数x作为输入/参数,并以单个非负整数输出/返回结果。 输入和输出可以是0索引或1索引,但是它们之间必须保持一致。 禁止按索引生成排列,返回排列的索引或找到逆排列的内建函数。(允许生成所有排列或下一个排列的构建体。) 适用标准代码高尔夫球规则。 例子 下面的示例是0索引的。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

7
正常和可视字符串还原
编写一些充当cat程序的代码。即,输入字符串并按原样输出。但是代码的正常还原必须输出输入字符串的正常还原。并且代码的可视化还原必须输出输入字符串的可视化还原。 正常的反转是字符串的反转字符序列。视觉还原是正常的还原,字符分别()[]{}<>替换)(][}{><为。 您可以使用任何包含字符()[]{}<>且在此挑战之前发布的代码页来定义字符。您必须对所有代码使用相同的代码页。您的原始代码在此代码页中必须是有效的,并且将您的任何反向代码应用于该代码页都会产生效果。 这是代码高尔夫,以字节为单位的最短代码获胜。 例 对于字符串AB(XY),其正常和视觉还原分别为)YX(BA和(YX)BA。 如果您的代码(使用假设语言)为AB(XY),则代码)YX(BA和(YX)BA应该分别输出输入字符串的正常和视觉转换。并且AB(XY)应该充当猫的程序。

30
拼图拼图
这是一个依赖答案的挑战!答案的顺序很重要,您的确切任务取决于发布的最后一个答案。您可能想按最旧的答案排序。 让我们拼凑一些代码!这是1920个随机(可打印ASCII)字符。可以将它们视为仍在盒子中的一大堆未分类的拼图碎片: L-^=v^Ej2tW8OxNOIecSt4m}tji2O%YRJ;PJ!M|0*oO77$*Rs&2*<c"KI7e%FY^?I=];Y@`x)u)IBk%_a#<E6<yv5O*$kL): KNGq)2Wa%b)j."(6U|{[UY@`lrCSJ`u0RHX!1z7f,v}n=GvRgkrEZ=YT:4H44bz]iC<](:+FF?Ay'vX~h5QMF)0vaXk1sk@p Zj).{+l;PBKHABvEP%FnSw>u<_-4B^A>I8Kay&5]vXZJ{fCF]UVZ<!ZpOI$7\Y%`@:%H3wPsX-`/l]ZZ?Q/d`\M<T@'t]zip {[ovg:6EpCT&'+vU4Heb^;}0AV|?<}M0rAH/^DL"RkT~%$[VUlM]-&We4(P=66},hL~;a`:$'yty.W[g2OWcL~b:Ryj0*eN< ;&-n[F1F=oh0k[NI!xS"]pA@Y;K}'=ekG5yda8J$+`N;:FIx:l,f_LT@sV[]HF@2*vl?|q"GL1j&%e(CyYPqY%3W|@`z}]bp 4_'1Nx{"G2&j6$UWt_#%`sTt2xC}s1P8J<gV24_RWge/aMuyVOjz=zS!1i2s@`Q#@^~@W/k@.YLbKxS:g9?J^p;7ju?B\yC5 x,ZApKS5G4}kx_iM)f4/|su>=[{XSV#{,j5Qn3U.v5LF;HXs%DYm4'+efmU;\}f6j$SFCRC`Gsd37:'3$q=bs;lvsW0Yj^:- I[94@I|.IpR=}4KB4Z0G4>8PR29'L?n\gk,*4X[-%T`\FC)jj0jl_x<xL8E:G2-"3tT8&E}"sE+SH[7jR%@V)a{!m8K>.rAO 2[dq7GX9nrz8p4}^2mn@q|dF%<.Tl8)Dk?O.<UoE(a*k_=4+u!h$^bVd:$jS#EHFh@Z=y=ib^~/~lEJ^SQ3E_t#&^IOov7v8 ~j#I#OHgxg{DZDyCsq-(GVq}HbiG,JV?eJ~5wJ;bSt@;3LI!2(6gIT92>}`_dw;YF@ccTIEz\Gu@2(}J2I1"S{R(2niIYPp9 8A3iiP[*!SH2*SN8'`V?w4Ufx2H*Az%{}FlUdH31TJ5{:ge^N91^;9Gj`Uqf'$_|8P"kHR1w.(ASwmN)U-~q"[XcWbqPnns= d.ZoPJ}$Xc2lA>HN28`(d0y+UAr*sQ=?KE07=\FsVN(#?&hRabS%BVI#<`O$o#4x5ZFFLGDcA4t?&Eh~Z$oBWwNSNv`^;vO' 2&9egng~L#\QkfMG?S/n@%-VA[?f9K&3"V%P#Sv0!D<,GV:Z;3c&zFe^k&^0b7fAjvrbMc^Lq7k$h=YL<h7<0\NK>~Q=uUv) 4cI$.'b-RVS-=rom:=8QR=c>9am-^5F[XGv>E/>|]~\']3{r{kTc?ee1v=;I7]52#NE)~A;}!z>5?hi{5<9FtWH6{VO_Y-Jy Mw>{l8n#mD,kl'8cG^.7sy=QqU-3~SKGs5(.Ta]:-Vfr'NS$o*q:w6e$&7spk3{CFT'l_hGY0-0Xui*5i^0^fO@6?2IdCn_C lPKaJ6]0t!u>v8<d'Vby]8kEHh04p(YI)&7w82BrGB3PkI,s+%7ux5)gau`G!8F8hLa4[lfD55Xf3Hqy*-K,?;2'fxH3JWYE Z.[N`:[K:CY@TzKX4TMXsm{Xbd:B3)Gy[mlwnC$>)z`:k=C\0ho/v{57#+2,*%]>p~vI2^C:2DebJR>.ESw^wd2N<~]O9sOQ `_yvIw&Ryf%JgT@W(G1wfU3.4G3U}x1jKJzJY\S9n$2~P;F}*eT9UXcTNBTrTs>~0v_Oi.y8ofX6i5u$;'^"q][QhTb*gO[U n'R0"v1r+9fv;5G7Bg=D:c*a=1@[}7}dYOO{Mz2&@6`jnNq.QcBDM9Dd=R.*=MqZ93#'{AJJFqx<{qb':B!H8ig1L%T\Vuc" (h$i3`,scX'hqpbw"=nY`*Lu:h1wR{+-`\^3cQkIWfq)3?&p;~pvDW$o7\O|R6rB2{PX.s#G6A.s<OA_,TI_b*&lO@L3KrQv 我们令人费解的“地板”最初只是96x20的空格网格(代码点0x20)。每个答案可能会在相邻的拼图块之间移动,并最多选择10个拼图(字符)并将其添加到拼图中以创建一个新程序。该程序必须打印您的答案编号(从1开始按顺序编号)。 接听 了解这一挑战的关键在于,一次只能一个人回答,每个答案取决于之前的回答。 永远不应该有两个答案有相同数量的ñ。如果两个人碰巧同时回答了一个N,则稍后回答的人(即使相差几秒钟)也应该宽容地删除他们的答案。 为了使此过程更流畅,请在发布答案时尝试遵循以下步骤: 确保有人独立验证了先前答案的正确性(并留下了相应的评论)。 以前面的“拼图地板”和“盒子”为例。您可以将拼图地板上的任何相邻字符块作为一个单元自由移动(如果字符沿水平或垂直方向触摸,则它们是相邻的)。相邻的块无法再次拆分。5x4网格上的示例: Last answer: Valid: Invalid: |a bc| |d g | |a bc| | bc | |a bc| | d e | |fa …

3
选择您自己的语言代码
让我们以16x16可打印ASCII字符(代码点0x20至0x7E)为网格。从左上角到右下角有30条选择的15条路径,仅进行正交移动,如以下示例所示: ##.............. .#.............. .######......... ......##........ .......##....... ........#....... ........#....... ........#....... ........###..... ..........###... ............#... ............#### ...............# ...............# ...............# 每个此类路径均由31个字符组成。请注意,这些字符中的每个字符在31个对角线中都不同: 0123456789ABCDEF 123456789ABCDEFG 23456789ABCDEFGH 3456789ABCDEFGHI 456789ABCDEFGHIJ 56789ABCDEFGHIJK 6789ABCDEFGHIJKL 789ABCDEFGHIJKLM 89ABCDEFGHIJKLMN 9ABCDEFGHIJKLMNO ABCDEFGHIJKLMNOP BCDEFGHIJKLMNOPQ CDEFGHIJKLMNOPQR DEFGHIJKLMNOPQRS EFGHIJKLMNOPQRST FGHIJKLMNOPQRSTU 这不是示例网格。这是31个对角线的可视化。 如果没有对角线两次包含相同字符,我们将称其为对角线唯一的网格。如果网格具有此属性,则没有两个路径将包含相同的字符串。(只是澄清一下,可视化本身基本上是相反的就是对角线唯一。) 挑战 设计一个对角线唯一的16x16网格,以使尽可能多的路径是有效代码,Jabberwocky并以尽可能多的语言打印到STDOUT(带有可选的尾随换行符)。每个代码可以是完整程序,也可以是没有返回语句的无参数函数的主体(这是为了不阻止需要在某些样板函数/类/命名空间中使用其代码的语言)。 注意:为简单起见,您可以为未使用的单元格使用一些保留字符,例如Ypnypn。 对于每个有效路径,请清楚说明其有效的一种编程语言。 获奖者是上述列表中使用的语言数量最多的作品。(或者,对于要计数的每种语言,请显示一种在该语言中有效的路径,但请确保不要对两种语言的任何路径进行计数。) 如果出现平局,请计算没有被任何有效路径覆盖的网格单元。较少的未使用单元会获胜。如果仍有平局,我将以(净)票最多接受答案。 验证脚本 我只是很快地整理了一个CJam片段,您可以使用它来验证网格对角线唯一。 转到在线CJam解释器。 粘贴以下代码 l:A; qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique" 在输入字段中,将保留字符放在第一行(如果不要求使用保留字符,请使用未使用的字符),然后将网格置于2到17行。例如,对于Ypnypn的答案: …

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.