Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

10
最短的唯一标识子字符串
给定一个字符串列表,请用其非空子字符串之一替换每个字符串,该子字符串不是列表中任何其他字符串的子字符串,并且应尽可能短。 例 给定list ["hello","hallo","hola"],"hello"应替换为,"e"因为该子字符串未包含在其中"hallo","hola"并且它尽可能短。"hallo"可通过任一取代"ha"或"al"并"hola"通过任何"ho","ol"或"la"。 规则 您可以假定字符串将为非空,并且仅包含大小写相同的字母字符。 您可以假定列表中的每个字符串都存在这样的子字符串,即列表中的任何字符串都不是其他任何字符串的子字符串。 输入和输出可以采用任何合理的格式。 这是code-golf,因此请尝试使用您选择的语言使用尽可能少的字节。 测试用例 在大多数情况下,仅给出一种可能的输出。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 相关:最短识别子字符串 -类似的想法,但涉及更多规则和繁琐的格式。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

23
编码-随机播放-解码
挑战 您的任务是将整数编码为ASCII字符的字符串,然后在所述字符串被随机混洗后成功解码。 您将编写两个程序/函数,分别称为Encoder和Decoder。 编码器 输入:在范围内的整数。ññn[ 0 ,231− 1 ][0,231-1个][0,2^{31}-1] 输出:一个字符串sss的ASCII字符(不一定打印)。 解码器 输入:字符串s的随机排列s′s′s'。sss 输出:整数ññn。 计分 令一种一种A为s在所有可能值n上的最大长度。如果编码器不确定地起作用(允许,请参见下文),则A将是s可能出现的最大长度(可能为∞)。sssññn一种一种Asss∞∞\infty 令大号Ë大号ËL_E为编码器的长度(以字节为单位),大号d大号dL_D为解码器的长度(以字节为单位)。 然后你的分数是甲⋅ (大号Ë+ Ld)一种⋅(大号Ë+大号d)A\cdot(L_E+L_D)。 提交的分数最低的是胜利。 时限 对于单个测试用例(即n的单个值),编码器和解码器的执行时间都存在1分钟的任意时间限制。ññn 目的是避免通过枚举具有某些属性的所有序列来发现强行编码的解决方案。如果您的解决方案做的比这更聪明,那么它很可能会符合时间限制,并被认为是有效的。同样,如果它在TIO上对ññn一些随机选择值起作用,则将其视为有效。否则,我将在我的机器上对其进行测试,但是请注意,如果您的解决方案是纯蛮力的,则几乎肯定会失败。 规则 该编码器和解码器必须写在同一语言。 对于编码器返回的字符串s的每个可能的排列s ',解码器必须输出正确的整数ññn。s′s′s'sss 该编码器和解码器都不会允许共享信息(通过全局变量或文件的方式,比如)以任何方式。 所述的输出编码器不需要不是确定性的(即,相同的输入ññn如果可以产生不同的输出串的编码器被运行多次),但解码器必须始终猜测正确的整数ññn。 的编码器和解码器可以采取,并返回整数ññn在任何方便的方式(例如,如果n = 14ñ=14n=14是细的输入是14,"14"或[1,4])。 所述编码器可输出的串sss由任一印刷其上stdout 或通过返回一个字符串,一个列表/字符数组或范围内的整数列表/阵列[ 0 ,127 ][0,127][0,127] ; 请注意,解码器将接收输入的置换sss被返回的编码器,所以它应该接受字符串s′s′s'在相同的格式为sss。 禁止出现标准漏洞。 如果可能,请说明您的代码如何工作以及您要求的分数为什么正确。 例 假设n = 14ñ=14n=14。 所述编码器接收14作为输入。它可能输出"qwerty"。 该解码器接收的置换"qwerty"作为输入,例如"tweyqr"。它必须输出14(以任何方便的格式)。 该编码器可能返回[113,119,101,114,116,121],以及,在这种情况下,解码器将已收到(例如)[116,119,101,121,113,114]。 请注意,编码器返回的字符串也可能包含不可打印的ASCII字符(但始终在范围内[0x00, ..., …

13
创建增长最快的函数(不到100个字节)
您的工作是创建增长最快的函数,最多不超过100个字节。 您的程序将以非负整数作为输入,并输出非负整数。让我们将程序称为P。 它必须满足以下两个条件: 其源代码必须小于或等于100个字节。 对于每个K,都有一个N,使得对于每个n> = N,P(n)>K。换句话说,lim (n->∞) P(n)=∞。(这就是“增长”的意思。) 您的“分数”是程序的基础功能的增长率。 更具体地,如果对于所有n> = N,存在一个N,使得P(n)<= Q(n),并且至少一个n> = N,使得P(n )<Q(n)。如果两个程序都不比另一个程序好,那就将它们捆绑在一起。(基本上,哪个程序较慢是基于lim (n->∞) P(n)-Q(n)的值。) 根据上一段中的定义,最慢的增长函数被定义为比其他任何函数增长慢的函数。 这是增长率的目标,因此增长最快的程序将获胜! 笔记: 为了帮助评分,请尝试将程序计算的功能放在答案中。 还放置一些(理论上的)输入和输出,以帮助人们了解您可以走多慢。

14
重用您的代码!
在这一挑战中,我们试图立即解决两个重要问题。他们是: 给定整数a和b,确定b -1是否为质数。 给定整数a和b,返回nCr(a,b)。 具体来说,您必须编写两个程序,一个程序执行第一个任务,另一个程序执行另一个任务。由于我们想一次解决两个问题,因此建议在两个程序中使用同一段代码。 计分 答案的分数是两个程序之间的Levenshtein距离。分数越低越好。如果出现平局,则以两个程序中组合代码最短的答案为准。您可以使用此脚本来计算解决方案的分数。 规则 您必须用相同的语言编写两个程序来解决上述任务。您可以使用所需的任何I / O方法。对于任务1,您可以返回真实/虚假值,或选择两个值分别表示是和否,然后相应地返回它们。例如。您可以选择“ "prime"真”和“ "not prime"假”。 您使用的算法必须适用于所有可能的输入,但是如果代码由于使用的数字类型的限制而无法用于大量数字,则可以。您可以假定输入有效。 程序的任何子集都不能解决问题,即。如果删除了任何字符,该代码将无法正常工作。例如,以下代码无效,因为可以在不破坏程序的情况下删除未使用的else-block: if (1) { /* change to 0 to get the second program*/ ... } else { ... } 不允许出现标准漏洞。 测试用例 a b -1是质数? a b 1 1 false 2 3 true 5 2 false …

28
站起来排长队
最近,有人对Python的默认行长提出了更严格的限制: 显然,出于各种原因,任何程序每行都不得使用超过80个字符。首先,对于可读性和可维护性,拥有一个坚实的标准很重要,因此我们可以适当地调整文本编辑器的宽度。作为第二个好处,代码可以轻松地转移到可能有限制的媒体上,并且添加换行符可能会分散注意力,例如打印页面供会议中查看或打孔卡。 但是80个字符太高了吗?一些建议使用79,甚至低至75,以允许80个字符宽的终端使代码适合带有几行行号的列。显然,最终,越低越好,因为较低的限制允许代码在更多情况下使用,而无需重新格式化。 介绍max6标准 您的目标是通过编写任何行中字符数最少的FizzBu​​zz变体来查找和演示“收藏夹语言”所需的最小行长。 输入项 整数n通过任何所需的方法。 输出量 从1打印编号,以Ñ,(Ñ ≥1,Ñ ∈ℤ)分离由换行,除了: 用于3个打印“ Apple”的倍数 用于5个打印“派”的倍数 用于3和5的倍数打印“ ApplePie” 计分 最大行长度(以字节为单位),不包括换行符(Cr,CrLf,Lf或其他系统标准中断,根据需要指定),总代码长度(以字节为单位)作为平局决胜局。 规则 所有换行符都必须有意义。可被移除和相邻的线直接连接在一起而对输出的影响换行符,必须被去除。

2
在此站点上,我们遵守热力学定律!
特别是第二定律:孤立系统的熵随时间增加。 为了这个挑战, “ 隔离的系统 ”将被视为程序或功能(从现在开始缩写为“程序”); 的“过一次 ”将对应程序的输出的重复执行,被视为一个新的程序; “ 熵 ”将被当作香农的一阶熵(将在下面定义),它是衡量字符串字符多样性的一种度量。 挑战 您的程序应该产生一个非空字符串,当以相同语言作为程序执行该字符串时,它会产生一个比前一个具有更大熵的字符串。无限迭代此执行输出过程必须产生严格增加的熵值序列。 字符串可以包含任何Unicode 9.0字符。字符串的顺序必须是确定性的(与随机相反)。 给定字符串的熵将定义如下。标识其唯一字符及其在字符串中的出现次数。频率p 我的的我个独特特点是字符由字符串的长度划分的出现的次数。熵就是 总和超过字符串的所有唯一字符。从技术上讲,这对应于离散随机变量的熵,其分布由字符串中观察到的频率给出。 令H k表示第k个程序产生的字符串的熵,令H 0表示初始程序代码的熵。另外,令L 0以字符表示初始程序的长度。根据挑战要求,序列{ H k }是单调的,并且是有界的(因为现有字符的数量是有限的)。因此,它有一个限制,^ h ∞。 所述得分提交的将是(ħ ∞ - ħ 0)/ 大号0: 分子,^ h ∞ - ^ h 0,反映到什么程度你的代码“服从”在一个无限时间跨度增加熵定律。 否定符L 0是初始代码的长度,以字符(而不是字节)为单位。 得分最高的代码将获胜。关系将得到解决,以便尽早提交/编辑。 要计算字符串的熵,可以在本文结尾处使用JavaScript代码段(由@flawr提供,并由@Dennis和@ETHproductions进行更正)。 如果获得极限^ h ∞在特定情况下是很难的,你可以使用任何下界,说^ h 20,计算得分(这样你可以使用(^ h 20 …

2
猜语言
介绍 这个站点正在迅速建立庞大的代码片段数据集,所以让我们来做点什么吧! 这是一个数据文件。它包含用于113种语言的9,066个唯一的语言+代码段对,所有这些对均来自本网站。格式以制表符分隔(语言TAB片段),摘要中的所有换行符均替换为<LF>,所有制表符均替换为4个空格。每种语言至少有5个摘要。 [更新:我对数据文件做了微小的更改,以合并以前错过的一些Python和RegExp版本-上面的链接已更新] 挑战 编写一个带有代码段并输出其编写语言的程序或函数(有关详细信息,请参见下文)。源+您需要的任何数据的总大小必须为300字节或更小,并且在给定其自己的源代码时,程序必须输出正确的语言。最高的准确性(上述数据集上最正确的答案)获胜。 规则 源代码,资源和任何必需的编译/运行时标志的总大小不得超过300个字节。 您的答案将根据上面的数据集进行测试;系统会根据数据集将“摘要”值之一作为输入,并将其输出与“正确”输出进​​行比较。将对数据集中的所有条目重复此操作,正确答案的最终数量是您的分数。 您可以选择输入编码-我假设使用UTF-8,因此,如果您需要其他编码,请在答案中指定它。 您不需要将<LF>换行符用于换行符;如果您的条目希望接收换行符作为文字换行符(字符10),请在您的答案中指定它。 您的条目必须输出认为输入代码段所用的语言。为避免压缩大量语言字符串,我将允许映射(如果您要为“ Java”输出3,就可以了)。只需记下答案中的映射即可。 每种语言只能有1个输出映射(即,如果3表示“ Java”,则也不能有4表示“ Java”)。 当给出其自己的源代码时,您的程序必须产生正确的答案(必须输出其编写语言)。 您不需要支持数据集中的所有语言,并且可以根据需要支持其他语言(例如,如果您输入的内容不是数据集中的一种语言)。 您的程序必须是确定性的(两次提供相同的输入必须产生相同的输出)。 打破领带 将通过减少数据集直到赢得一项来决定联系。通过删除最流行语言的所有代码片段(例如,由于稀有语言的准确性而导致的联系中断),将减少数据集。例如,如果A和B在整个数据集中的得分为70%,则所有Python代码段都将被删除。如果A和B现在都获得60%的分数,则将删除CJam。如果A现在得分50%,而B得分55%,则B是赢家。 如果达到100%的准确性,则将使用包含相同语言的更多样本的第二个(盲)数据集来确定联系。 例子1 Python脚本: print("python") 如果提供了自己的源代码,此脚本会成功生成“ python”,因此它是有效的。在数据集上,它的得分为1008/9066 = 11.1% 例子2 JavaScript函数: function f(s){return /function/.test(s)?1:2} 使用映射1→javascript,2→python。再次,它成功为其自己的源生成了1(“ javascript”),并且在数据集上的得分为1092/9066 = 12.0% 数据来自哪里? 我创建了SEDE查询,以从此站点的[code-golf]挑战中抽取样本。从得到的10,000个答案中,我使用了一个被黑的python脚本来查找每个脚本的代码和语言名称,然后用少于5个示例过滤掉任何语言。数据不是100%干净的(我知道它提取了一些非代码片段),但应该足够好。 受到今年早些时候的挑战的启发:谁这么说?2016年总统选举 还与什么是语言有关?

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

3
堆叠勾股三角
背景 毕达哥拉斯三角形是直角三角形,其中每个边的长度是一个整数(即,边的长度形成毕达哥拉斯三重): 使用这个三角形的边,我们可以附加两个不完全一致的毕达哥拉斯三角形,如下所示: 只要我们认为合适,就可以继续使用此模式,只要没有两个三角形重叠并且连接边的长度相等即可: 问题是,在给定的空间中,我们可以容纳多少个非一致的毕达哥拉斯三角形? 输入 您将通过函数参数,STDIN,字符串或任何您喜欢的变量接收两个整数作为输入,W和H。整数可以以十进制,十六进制,二进制,一元(祝您好运,Retina)或任何其他整数基数形式接收。您可能会认为max(W, H) <= 2^15 - 1。 输出 您的程序或函数应计算一个不重叠的连接的非一致勾股勾勒三角形的列表,并输出一组三个坐标的列表,其中一组坐标通过线连接时形成勾股勾勒三角形之一。坐标必须是我们空间中的实数(x必须在区间中,[0, W]并且y必须在区间中[0, H]),并且距离应精确到机器精度。三角形的顺序和每个坐标的确切格式并不重要。 必须有可能从一个三角形“行走”到其他任何一个,仅跨过相连的边界。 使用上述图作为一个例子,让我们的输入是W = 60,H = 60。 然后,我们的输出可能是以下坐标列表: (0, 15), (0, 21), (8, 15) (0, 21), (14.4, 40.2), (8, 15) (0, 15), (8, 0), (8, 15) (8, 0), (8, 15), (28, 15) (8, 15), (28, …

8
与可打印ASCII有关的多产的完美Pangram程序
更新:取消了时间限制。您必须能够描述输出-请参阅新规则。 一个全字母短句是使用字母表中的每个字母至少一次,如句子: 敏捷的棕色狐狸跳过了懒狗。 一个完美的全字母短句使用每个字母一次。 考虑使用95个可打印的ASCII字符(十六进制代码20至7E)作为字母编写完美的pangram程序: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 这样的程序必须完全包含95个字符,每个可打印的ASCII字符仅出现一次,但顺序不限。(因此有95!= 1.03×10 148个可能性。) 您的任务是编写此程序,以使打印到stdout的可打印ASCII字符数尽可能多(即,多产)。 您的分数是程序输出的可打印ASCII字符数(总数,而不是不同的数字:AABC分数4,而ABC分数3)。最高分获胜。 细节 输出可能包含任何字符(包括重复字符),但只有95个可打印ASCII字符的实例才计入您的分数。 您可以使用此JSFiddle来计算任何字符串中可打印ASCII字符的数量。 如果您的语言没有标准输出,请使用最合适的替代方法。 您的程序... 必须具有有限的运行时(时间限制已删除) 必须具有有限的输出 可能包含评论 必须编译并运行时没有(未捕获)错误 不得提示或要求输入 必须是时间不变的和确定性的 不得使用外部库 一定不需要网络连接 不得使用外部文件 (您可以使用程序文件本身,只要更改文件名不会改变程序的行为) 如果这项任务不可能完成,那是某种糟糕的语言。 如果输出太大而不能容纳在帖子中,则必须给出准确的输出或准确地描述它。您实际上不必运行程序。只要将在有限的时间量在计算机上运行的内存无界量它是有效的。 例 这个简单的Python 2程序是可能的解决方案: print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~ 它输出9876543210包含10个可打印ASCII字符,因此得分为10。

15
压低唯一字符
非常简单:您的程序或函数应生成以下文本: Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look. 印刷精美 您可以编写一个程序或函数,该程序或函数将输出作为字符串返回或将其打印到STDOUT(或最接近的替代品)。您可以选择在输出中包含单个尾随换行符。 计分 代码中的字节数乘以代码中的唯一字节数 最低分获胜。 例如,在这种情况下,脑力激荡或空格答案将具有巨大优势,因为乘数将非常低(分别为8和3)。但是,通常,用那些语言编写程序会产生更长的代码,这可能会抵消该优势。 标准的漏洞这不再是滑稽的禁止。

5
升到英语翻译
您面临的挑战是编写一个程序,将leetspeak / lolspeak / txtspk(英语)翻译成正常的英语。您的程序应从标准输入和输出读取为标准输出,除非您的语言不支持这些。 您可以使用包含英语单词列表的文件,并用新行分隔。它应该被调用W,并将与您的程序位于同一目录中。(在GNU / Linux系统以及可能的其他系统上,您可以W链接到/usr/share/dict/words)列表不必全为小写,您可以使用它来确定单词是否应使用大写。 这是基于Nikos M.现在删除的问题,可以在此处找到。这不是重复的,因为此原始问题已关闭且未收到任何答案,因为没有获胜标准,并且用户不愿意输入。 计分 计分有点复杂! 你的分数是 (leet items + bonuses) * 10 / (code length) 最高分获胜。 您的程序不一定是完美的,也可能不是完美的,但是它越精确,它所获得的奖金就越多! 既然$可以同时表示s和S,则每个leet项目决定是否应使用大写字母(即句子开头的大写字母)可获得5分的奖励。 如果实现专有名词(始终带有大写字母的单词),则每个leet项目还将获得5分的额外奖励-这种方法的工作方式是,您可以浏览单词列表,并且如果单词中只有大写形式,则将输出大写。列表,如果两个版本都在那儿,那就猜吧。 如果一个字符具有两种含义(例如,1可以表示意思L或I),则每个leet项目仅获得那些构成真正英语单词的翻译,即可获得20分。为此,请使用单词表。如果一个leet物品的多个翻译成一个真实的英语单词,您可以任意选择其中一种有效的翻译,但仍然可以获得奖励。 升力清单 这些是您可以实现的重要项目。您不必全部实现它们,但是添加的越多,获得的积分就越多。 您无法通过将项目或角色翻译成自身来获得分数。该规则将覆盖我在列表中可能犯的任何错误。 做一个简单的tr或诱人s/.../.../g。真正的挑战是使用单词表确定多种含义中的哪种正确与否。 升项(每个项leet items在公式中加1) $-> s,S (-> c,C 5-> s,S @-> a,A 4-> a,A 3-> e,E 7-> t,T +-> t,T #-> …

4
在ROT-47中实施ROT-47…
挑战:以既可作为自身又可作为其ROT-47版本使用的代码实现ROT-47。 得分: 您的分数是按照程序两个版本中已使用的合格ROT-47字节的百分比除以两个版本的总字节(所有字符)的百分比得出的。 甲使用的,ROT-47合格字节是将由ROT-47的密码是不被转换任何字符一个注释的一部分或由编译器/解释器忽略。例如,brainfuck程序中任何不+-<>[],.被认为不是已使用字节的字符,而C程序中包括其后//或内部或内部的任何字符/* */都不会被视为已使用字节。APL中的所有特殊符号均不被视为已使用,空白程序中的所有字符均不被使用(对不起)。 程序将以最多的票数打破联系。如果仍然平局,则以最短的程序为准。 评分示例: C:62/64 = 96.875% 注意该程序中有一个空格。显然,该程序也不是有效条目,因为它甚至没有编译,但我想展示评分的工作原理。 main(){printf("Hello World!");}

3
解决15难题(滑动瓷砖的难题)
15拼图是一个著名的拼图,涉及在4x4网格上滑动15个图块。从随机配置开始,目标是按照正确的顺序排列图块。这是一个已解决的15个难题的示例: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 拼图上的每个动作的形式均为上/下/左/右。“向下”移动包括向下滑动空白点上方的图块。“向右”移动包括向右滑动瓷砖到空白处。这是板在上下移动后的外观。 01 02 03 04 05 06 07 08 09 10 11 13 14 15 12 这项挑战的目标是编写一个程序,该程序可以输出解决15难题所需的一系列动作。获胜者是能够以最少的总动作解决五个测试案例(如下)的程序。生成的解决方案并不一定是完美的解决方案,它只必须比竞争对手更好。对于每个单独的测试用例,在合理的机器上,程序的时间不应超过十秒钟。 您的程序必须能够解决所有可解决的难题,我只是将这五个测试用例用作评分。 您的程序将以2D数组的形式接收未解决的15拼图作为输入。可以根据使用的语言来格式化2D数组,如果该语言没有2D数组,则可以对其进行更改。第一个子数组的第一个元素将是左上角的数字,第一个子数组的最后一个元素将是右上角的数字。一种0将是空白区域。 作为输出,程序应按需要执行的顺序打印动作列表。每个步骤都应编号,以增加结果的可用性。 编辑:基于注释,我将允许输出为Down / Up / etc形式或要移动的工件坐标形式。由于这不是代码高尔夫球,所以最重要的部分是解决难题。 其他一些通用规则不涉及使用外部资源等。 测试用例1 ([5,1,7,3],[9,2,11,4],[13,6,15,8],[0,10,14,12]) 示例输出: 1: Down 2: Down 3: …

13
进行长型签名
挑战 查找最长具有100个字节且类型签名最长的表达式。 规则 允许任何具有类型推断的静态类型语言 该类型必须是无歧义的,但否则可能包括没有定义实例的类型。例如Num [a]和Eq [a]是允许的,即使没有定义的实例 除了使用STDIN / STDOUT编译程序所需的最低要求外,没有其他导入 不允许无限类型 如果一个答案有多个表达,则只有一个可以参与评分。例如,尽管composition的类型签名为(.) :: (b -> c) -> (a -> b) -> a -> c,得分为20,但包含25个副本的答案(.)\n的得分为20,而不是500 表达式最多为100个字节 分数是类型签名中的字符数,不包括函数名称和任何空格。例如,f :: (a -> b) -> a -> b得分为12 最高分获胜! 例子 尽管允许使用其他语言,但是以下示例位于Haskell中: Score: 112 map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map f :: (a -> b) -> [[[[[[[[[[[[[[[[[[[[[[[[[a]]]]]]]]]]]]]]]]]]]]]]]]] -> [[[[[[[[[[[[[[[[[[[[[[[[[b]]]]]]]]]]]]]]]]]]]]]]]]] Score: …

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.