Questions tagged «code-challenge»

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

5
修改过的Boggle Checker,具有修改过的Boggle-able代码
背景 Boggle是一种棋盘游戏,玩家必须在4 x 4的随机字母板上找到英语单词。可以通过依次选择板上的相邻单元来构造单词。(“相邻”表示水平,垂直或对角线相邻。)而且,同一单元格在一个单词中不能多次使用。 以下是示例板: I L A W B N G E I U A O A S R L 在这个棋盘上,BINGO,ORANGE和WEARS是有效的话,但SURGE并RUSSIA没有: SURGE:板上没有相邻的对RG。 RUSSIA:S不能使用两次。 修改后的Boggle是Boggle的修改版,具有以下规则: 电路板尺寸为n-by- n,其中n可以为任何正整数。 每个单元格可以包含0到255之间的任意一个字节。 一个单元可以使用一次以上,但不能连续使用两次。 使用例如板的上方,除BINGO,ORANGE并且WEARS,LANGUAGE成为有效的字符串(因为G在一行被使用两次,而不是两次),但RUSSIA仍然没有(由于SS对)。 这是另一个使用代码片段的示例。该字符串from itertools import*\n可以在以下主板中找到,但不from itertoosl import*还是from itertools import *: f i ' ' s r t m l e o o …

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

29
警察与强盗:编辑原始性(警察线)
最初由Magic Octopus Urn沙盒挑战;我在他的允许下通过并发布了它。 这是警察的话题。强盗的线索在这里。 挑战 第一步:编写一段检查素数的代码(函数或完整程序)。 第二步:通过将符号替换为符号来删除代码段█。 第三步:将已编辑的代码发布到警察线程上。 第四步:等待您的代码被破解,然后尝试破解其他人的代码。 例如,Groovy代码{it.isPrime()}可能变为{██.is█████()}。(这很容易破解;我知道,.isPrime()这也不是Groovy方法。) 计分 您必须在提交的程序中包含程序的分数。分数定义为编辑字符与字符的比率。因此,如果您的程序有20个字符,其中有5个被删节,则您的分数将为0.25。上面的Groovy代码的得分为0.5。 规则 您的程序只需要处理正整数。如果数字是素数,则应输出真实值,否则应输出虚假值。请在您的答案中指定输出的内容。 您的代码不得包含任何注释或不必要的空格。 没有哈希或加密混淆。 您的代码可能未编辑超过50%(必须显示至少1/2个字符)。这意味着可能的最高分是0.5。 如果您的答案在一周内仍未破解,则可以将其标记为安全,然后编辑预期的破解。 获奖 获胜者将是发布后两周内得分最低的完整答案。如果是平局,则以得票最多的人为准。该主题始终对更多作品开放,但是两周后选择的获胜者将是永久的。

4
最有效的起泡器
Cubically过于繁琐,无法手动编写任何代码。您的挑战是将ASCII文本转换为Cubically源代码。 立体地 这只是Cubically的一个快速失败;该存储库具有更完整的指南和详细信息。 奇怪的是我前段时间写的一种esolang,使用起来很痛苦。它包含两个内存,一个3x3x3 Rubik的多维数据集和一个称为“记事本”的寄存器。 记忆 内部Rubik's Cube的初始化如下: 000 000 top face 000 111222333444 left, front, right, and back faces, respectively 111222333444 111222333444 555 555 down face 555 在右表面上顺时针旋转90°后,内存立方体将如下所示: 002 002 002 111225333044 111225333044 111225333044 554 554 554 指令 非整数字符设置默认命令。对于再次设置默认命令之前的每个整数,将使用该整数执行命令。例如,x524y312将先执行x5 指令,然后执行2指令,再执行4指令,再执行y3 指令,然后执行1指令,再执行2指令。 命令使用的整数表示面部索引。因此x0将x在UP(0索引)面上执行。x1会执行x在LEFT(1索引)面上执行,依此类推。 执行任何命令6都会在记事本值上执行该命令。执行任何大于6的整数的命令将导致错误。 以下是一些示例命令: R1 -将右面顺时针旋转90°,以使内部立方体看起来像上面的第二个示例 R11 -将右面顺时针旋转90°两次,与 R2 …

6
Anaglot语法图
任务 用n种不同的语言编写一些可以重新排列到n个不同程序中的代码,每种输出从1到n的不同数字。 没有两种语言应该是相同的,但是只要它们具有不同的主要版本号,“相同语言”的不同版本将被视为不同的语言。对于这一挑战,REPL环境与其父语言没有区别,但仍然是一种语言。每种语言应在源代码的不同排列上运行,并在范围内输出不同的数字。 排列将以字节为单位,而不以字符为单位。 您应该包括使用测试所使用的语言运行的每个排列。 计分 您的分数将是 其中N是语言数,L是程序字节的唯一顺序数。 L不等于程序的长度 (除非程序为1或0字节) 这是计算Conor O'Brien的L的Python脚本。 当且仅当程序中没有重复的字节时,L才等于程序阶乘的长度。 目标是最大化您的分数。

5
国际象棋分析信息有限
在此挑战中,您仅获得有关特定棋类游戏的有限信息,并且需要预测谁赢得了该游戏。 您将获得两组数据: 计件(哪些还活着) 木板颜色(木板上的棋子颜色) 更重要的是,您不知道这些碎片在哪里。您需要确定您认为会赢的人。 从2010年至今的PGNMentor上列出的所有事件中选择游戏。我从每场以胜利或失败告终的游戏中选择了所有董事会职位的10%。棋盘位置至少要有30步才能进入游戏。测试用例可以在这里找到。(首先列出白色胜利,然后是黑色胜利) 输入项 件数将是由每件的字符的字符串:kING,queen,rOOK,K n飞行,bishop,或p芒。小写表示黑色,大写表示白色。面板将是一个包含64个字符的字符串(8行8列)。B代表黑色,W代表白色,并且.代表空白。样品: W..WB......W.BB....W..B..W.WWBBB..W...B....W..BBWWW...BB.W....B.,BBKPPPPPPPQRRbbkpppppppqrr 将代表以下董事会 ...B.BB. .BBBBBBB .B.B.... B..W.... WWWW.W.. ....W.W. ...W..WW W.....W. 并且两种颜色都有2个主教,1个国王,7个兵,1个女王,2个白嘴鸦 输出量 您需要返回一个介于0和1(含)之间的浮点数,以确定白获胜的可能性。样品: 0.3 (30% chance that white wins) 更多细节: 每个测试用例价值1分。您的得分将是1 - (1-Output)^2白人获胜或1 - (Output)^2黑人获胜。 您的最终分数将是所有测试用例的总和。 如果我认为提交的内容对输入进行了硬编码,则我保留更改测试用例的权利。(如果我更改它们,它们将具有SHA-256哈希值893be4425529f40bb9a0a7632f7a268a087ea00b0eb68293d6c599c6c671cdee) 您的程序必须独立运行测试用例。没有将信息从一个测试用例保存到下一个用例。 如果您使用的是机器学习,我强烈建议对前80%的数据进行培训,并使用其余的20%进行测试。(或您使用的任何百分比)。我在数据中多次使用游戏,但是将相同的游戏顺序放置。 更新:为了测试和学习目的,我添加了超过一百万个测试用例。由于github repo大小限制,它们分为黑色​​和白色部分。 祝好运并玩得开心点!

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

3
高温辐射固化剂
背景 在这个站点上,我们偶尔会遇到一些问题,要求对程序进行“辐射加固”。这意味着程序必须能够删除一个或多个字节,无论删除哪个字节。 对于在编程挑战中经常遇到的任务很常见,很自然地想要制作一种特别适合这些挑战的语言。鉴于自然的方法是添加一些元数据,以使反向破坏成为可能,因此,实际上并不是真正需要设计的语言,而是一种编码。这个想法是将每个输入转换为一个字节序列,这样即使对序列稍加照射,也可以提取原始输入。 任务 编写两个程序或函数,E(编码器)和D(解码器),使得: E接受两个参数,一个八位字节序列(在本规范中称为“ 输入 ”)和一个非负整数“ radiation ”,并输出一个八位字节序列“ encoding ”。 D接受一个参数,即八位字节序列(“ encdng ”),并输出八位字节序列“ reconstruction ”; 如果同时运行E和D(使用encdng,则D的输入,通过从编码中删除不超过辐射元素(不一定连续)来选择),那么无论删除了哪些字符以形成encdng,重构都将等于输入。 澄清说明 如果您提交的功能,你不必叫他们E和D; 您可以选择最适合您的语言的名称。 “八位位组”基本上是0到255之间的整数,您可以将其编码为整数,字符或任何适合您的语言的字符。 E和D必须完全是确定性的(即给它们相同的输入将始终产生相同的输出,其中“输入”定义为E的输入和辐射,或D的编码)。特别是,E可能不会通过边信道将信息传达给D。 删除是通过删除序列的一个元素来完成的。可以考虑在编辑器中打开序列,将光标置于任意点,然后按Backspace键。如果一个元素出现多次,则可能只删除该元素的一个副本(即,同一八位位组的其他实例将不受影响)。 尽管仅根据相当短的输入量来计算分数,但是您的程序在理论上必须对任何输入量和辐射都有效。特别是,无论input中出现哪个八位字节,它都必须起作用。(很抱歉,希望使用他们知道的不可打印字符的能力不会出现在输入中,但是我需要确保输入不可压缩,以便挑战在于辐射硬化而不是压缩。) 您可以提交定义两个功能的一个文件。两个文件,每个文件都定义一个功能或都是完整程序;或三个文件,其中两个分别实现D和E(通过完整程序或通过定义函数),第三个文件是D和E通用的头文件或库。无论使用哪种提交形式,则您的编程语言实现必须能够理解两个程序而无需文件位置等其他参数(否则,按照我们的标准规则,您必须以不寻常的方式调用实现以支付字节罚款)。 胜利条件 对于每个长度和辐射,令f(长度,辐射)为编码 s 的总长度,其对应于具有长度length的所有输入以及给定的辐射。(也就是说,f(长度,辐射)= 输入总和的长度为长度 length(E(输入,辐射))。)然后令g(长度,辐射)等于f(长度,辐射)÷256 长度。换句话说,对于给定的输入长度和给定的辐射硬化要求,g是编码输出的平均长度。(理论上,您可以通过蛮力计算出来,但是以这种方式计算出您的分数可能会花费很长的时间。我希望大多数提交者能够对他们的分数做出数学上的论证。不确定,发布一个近似分数,如果另一个条目发布了相似的分数,您或其他人可以更深入地计算它。) 您的分数等于0到9(含)范围内的所有辐射的g(长度,辐射)的总和,0到99(含)范围内的所有长度的总和,加上(主要是避免硬编码,或者如果有人发现了数学上完美的编码;否则,这可能是一个最小的因素)提交给挑战的字节总数(加上对要求异常解释器标志或特定文件名之类的标准惩罚)。获胜者是得分最低的作品(被第一次提交的作品打破)。

1
制作一个正则表达式
编写一个至少可以在2种正则表达式版本(或版本)中运行的正则表达式,并在其运行的每种版本(或版本)中匹配一个不同的字符串。 在此挑战中要匹配的字符串是Ubuntu代码名称的第一个单词,下面列出。您的正则表达式必须与列表顶部匹配。也就是说,如果您的正则表达式可以使用3种样式,则必须与Warty Hoary和匹配Breezy,而不是其他。 Warty Hoary Breezy Dapper Edgy Feisty Gutsy Hardy Intrepid Jaunty Karmic Lucid Maverick Natty Oneiric Precise Quantal Raring Saucy Trusty Utopic Vivid Wily Xenial Yakkety Zesty 17.10 18.04 18.10 19.04 19.10 ... 如果您的正则表达式可以使用超过26种口味,则可以匹配Ubuntu版本号。从17.10开始,对于每个新口味,如果第二个数字为04,则将其更改为10,然后将第一个数字递增,将第二个数字更改为04。 在每种形式中,您的正则表达式应仅匹配假定的字符串,而不匹配其他字符串(不限于代码名称)。尾随换行符无关紧要。这意味着您的正则表达式可以只匹配不带尾随换行符的字符串,仅匹配带尾随换行符的字符串,或者匹配两者。而且不必在不同口味上保持一致。您可以假定输入使用可打印的ASCII(末尾的换行符除外,如果有的话)。 您的分数是(代码长度+10)/((风味数)^ 2)。最低分获胜。

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。 …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

10
使用尽可能靠近的键打印QWERTY键盘
通常,挑战以字节计分,有时以Levenshtein距离计分,但是对于这一点,我们使用键盘距离-用来键入程序的键之间的键数(使用上面的键盘作为权威参考)。例如,之间的距离A和F为3时,因为路径A=> S=> D=> F。之间的距离N,并5为4,因为无论你采取什么样的路径,它至少需要4个步骤。您的任务是输出以下内容(不包括尾部空格),并尽可能减小键盘距离: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M 包装: 为了使您的生活更轻松,某些键可以环绕键盘。Left Shift余套Right Shift,Caps Lock余套Enter,Tab余套\及~余套Backspace。例如,之间的距离Q和P为5,因为Q=> Tab=> \=> ]=> [=> P。 注:包装只能水平-你可以不从,步说,\到Caps Lock 得分: 分数=键盘距离+字节数 计算示例: print(5); p=> r== 6 r=> …

2
具有独特输出的Brainf ***子程序
您应该编写一个100字节长的Brainfuck(BF)程序。 将以各种可能的方式从其中删除一个字符,从而得到100个新程序(长99字节)。例如,对于该计划++.>.的5个子程序是+.>.,+.>.,++>.,++..和++.>。 您的分数将是100个程序生成的唯一输出的数量。分数越高越好。 细节 输出第一个字符后,程序将终止。 无效或不终止的程序以及生成空输出的程序不计入分数。 BF单元是8位换行的。(255 + 1 = 0,0-1 = 255) 您的程序没有输入。如果,在代码中使用它,则将当前单元格设置为0。 起始位置左侧没有任何单元格。例如<.无效,但.<由于执行在处终止而有效.。磁带在另一个方向上是无界的。 方括号([和])不平衡的程序无效。 您的原始程序可以少于100个字节,因为很容易将其扩展为100个字节而无需更改分数。 您的原始程序不必是有效的BF代码。 您可以使用此python3程序(ideone链接)来确定答案的分数。(对于长时间运行的程序,您可能需要修改maxstep变量。) 例 (为简单起见,此程序短于100个字节。) Solution: ++,+[-]+><.-,-. Score: 3 Explanation: Subprogram => Output +,+[-]+><.-,-. => 1 +,+[-]+><.-,-. => 1 +++[-]+><.-,-. => 1 ++,[-]+><.-,-. => 1 ++,+-]+><.-,-. => None ++,+[]+><.-,-. => None ++,+[-+><.-,-. => None …

2
优化纸张折叠以减轻墨迹
深黑色墨水溅在您的白色打印机纸上!显而易见的解决方案是折叠纸张,使黑白部分相遇,并且随着墨水的扩散而都变成灰色。然后展开并重新折叠,直到您的纸张全部变灰为止。 寻找最佳折叠方式是您在编码挑战中的任务。此Pastebin包含四个不同大小的1和0网格。每个网格代表一张墨水飞溅的纸,您必须将其变成灰色。零是纸,一个是墨水。 在这些网格中,仅沿线和列之间的空间的水平和垂直折叠有效。进行折叠时,对重叠值进行平均。一次折叠一次,并且始终展开。折叠仅改变墨水分布,而不改变纸张尺寸。 Rn表示从第n列开始向右折叠网格的左边缘。Dn表示从第n行开始向下折叠网格的顶部边缘。(n为1索引) 例 给定这个网格 0 1 1 1 0 0 0 0 0 0 0 0 D1折叠意味着“向下折叠整个第一行然后展开”。 0 0.5 0.5 0.5 0 0.5 0.5 0.5 0 0 0 0 然后一个R2会产生 0.25 0.5 0.5 0.25 0.25 0.5 0.5 0.25 0 0 0 0 而另一个R2不会更改任何内容。 目标 您的目标是编写一种算法,该算法每次使用正好8折来找到四个网格中每个网格的最佳油墨铺展折叠顺序。折叠可以是R或D的任何组合。 计分 您提交的分数是每个网格的分数总和。网格的分数是其每个值与其平均值之间的绝对差之和(其总和除以其面积)。分数越低越好。0分是完美的,但可能只有8倍是不可能的。 您必须在答案中报告四个带有代码的8步折叠序列。这样我们就可以验证您的算法确实有效。 …

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.