Questions tagged «test-battery»

评分标准涉及通过大量测试用例运行程序输出的问题。


3
弥合差距
给定具有白色背景和一组黑点的黑白图像,将一组白色像素绘制为红色,以便每对黑色像素之间都有一条路径。 细节 路径是一组连接的像素(8邻域连通性)。黑色像素可以用作路径的一部分。目标是在上述条件下尽量减少红色像素的集合,并输出相应的图像。 你不必须找到最佳的解决方案。 一个平凡而又最糟糕的解决方案就是将所有白色像素都涂成红色。 示例(为可视性将像素放大): 细节 给定一个像素图像(采用任何合适的格式),则返回另一个图像,该图像具有如上所述连接的点以及一个整数,该整数指示使用了多少个红色像素。 分数是14个测试用例的每一个的乘积((1 +红色像素的数量))。 目标是得分最低。 测试用例 14个测试用例如下所示。可以在此处找到用于验证输出连接性的python程序。 元 感谢@ Veskah,@ Fatalize,@ wizzwizz4和@trichoplax的各种建议。

1
让我们写一个Minifier
背景 通常,在向Web浏览器提供JavaScript时使用缩小符。通常用于减少必须发送的字节数。显而易见,节省带宽很有用。有些人使用混淆器(故意使代码难以阅读),我不是在谈论那些。 我们将缩小Python 2 我在讨论是否使用JavaScript或Python来获得最小化的体验,而我决定使用Python的原因有两个:空白很重要,我认为这会增加一个有趣的动态问题。此外,使用Python 2.7将提供另一种动态效果,例如()在打印过程中删除多余的内容(即print("Hello world")vs. print"Hello world")。就我个人而言,我更愿意将其开放给任何语言,但是对于某些语言,此过程没有多大意义。而且,您决定缩小的语言将直接影响您的分数(甚至可以缩小该语言)。 眼镜 您的目标是仅以不会改变其功能的方式修改代码。当然,您可以更改变量名称(在缩小程序内部),只要它不影响输出(保持作用域)即可。尽管我为您提供了一个特定的程序,但是请不要针对测试用例进行优化,因为所有标准漏洞都被禁止。 分数:程序缩小后的长度。 输入:任何Python 2.7程序(不包含错误) 输出:缩小版本。 尽管您的代码应该能够容纳所有有效的Python 2.7输入,但是有必要对脚本进行测试以证明其有效性。 单击此处查看示例程序。 使问题更加平易近人 随意使用或修改在我的解决方案中找到的任何代码(列在下面)。我这样做是为了让您开始使用报价基本报价处理。但是,您可以将其扩展为缩进等。 缩小Python的示例方法 所有空白都可以用尽可能少的空间替换(我承认,在Python中,您可以使用tabs做一些棘手的事情,但是我将由您自己决定是否实现它)。 例 下列: def print_a_range(a): for i in range(a): print(i) 可能: def print_a_range(a): for i in range(a): print(i) 从技术上讲,如果循环内只有一行,则可以进一步压缩它: def print_a_range(a): for i in range(a):print(i) #Note, you can also …

11
案例匹配查找替换
以三个输入,文本串T; 一串要替换的字符F;以及用替换它们的字符串R。对于每个T具有相同(不区分大小写)字符的子字符串F,请将其替换为中的字符R。但是,请保持与原始文本相同的大小写。 如果输入的字符R多于个F,则多余的字符应与输入的大小写相同R。如果其中包含数字或符号F,则其中的相应字符R应保持其大小写R。F不一定会出现在中T。 您可以假设所有文本都在可打印的ASCII范围内。 例子 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

6
文字转脑
您面临的挑战是将输入文本转换为能输出文本的大脑代码。 教程取自这里有权限在这里 Brain-Flak具有两个堆栈,分别称为“左”和“右”。活动堆栈从左侧开始。如果弹出一个空堆栈,它将返回0。就是这样。没有其他变量。程序启动时,每个命令行参数都被压入活动堆栈。 Brain-Flak程序中唯一有效的字符是()[]{}<>,并且必须始终保持平衡。函数有两种类型:Nilads和Monads。一个nilad是一个函数,0参数。这是所有的尼拉德人: () 评估为一。 [] 计算到当前堆栈的高度。 {}弹出活动堆栈。评估为弹出值。 <>切换活动堆栈。评估为零。 在评估它们时将它们串联在一起。因此,如果我们在活动堆栈的顶部有一个“ 3”,则此代码段: ()(){} 将评估到1 + 1 + active.pop()将评估为5。 单子组采用一个参数,即一大堆Brain-Flak代码。这是所有单子: (n) 在活动堆栈上按“ n”。 [n] 评估为负数“ n” {foo} 虽然零不在堆栈的顶部,但请执行foo。 <foo> 执行foo,但将其评估为0。 这些函数还将返回它们内部的值,因此 (()()()) 将推3但 ((()()())) 将两次推3 。 在{}将评估所有运行的总和。因此,如果我们在堆栈的顶部有“ 3”和“ 4”: {{}} 评估为7。 程序执行完毕后,将打印保留在活动堆栈上的每个值,并在它们之间使用换行符。其他堆栈上的值将被忽略。 规则 您可能会认为Brain-Flak正在以ascii格式运行。(-A) 脑筋急转弯的代码一定不需要输入 所有标准规则均适用 对于TIO上最多1024个字节的任何输入,代码必须在1分钟内运行。(如果没有可用的TIO输出,请提供解释器,我将在我的机器上运行它(我的机器应该能够接近TIO))。 您必须支持任意长度的输入。 您可以从文件中获取输入。 不允许针对测试用例进行优化 确定性输出是必需的 …

3
组合难题!
简介:组合逻辑 组合逻辑(CL)基于称为组合器的东西,它们基本上是函数。有两个基本的“内置”组合器S和K,稍后将进行说明。 左联想 CL是左关联的,这意味着可以删除包含花药的另一对花括号中最左边的花括号,并将其放开。例如,如下所示: ((a b) c) 可以减少到 (a b c) 在(a b)大括号的最左边的位置((a b) c),因此可以将其删除。 左关联的一个更大的例子(方括号是解释): ((a b) c ((d e) f (((g h) i) j))) = (a b c ((d e) f (((g h) i) j))) [((a b) c...) = (a b c...)] = (a b c (d e …

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

4
构建非地理幅度优化器™
非图是日本的益智游戏,其目标是根据连续区域的列表绘制黑白图片,如下所示: 将行或列的非地理大小定义为该行或列中连续黑色区域的数量。例如,第一行的非地理大小为1,因为该行中有一个2平方的区域。第8行的非地理大小为3,因为它的第2行,第2行,第1行。 空行或列的非地理大小为0。 您的任务是编写一个程序,使用一个非图的解决方案网格,并生成一个具有尽可能小的填充正方形的解决方案网格,其中每一行和每一列与给定的解决方案网格具有相同的非成像性。 例如,填充了所有正方形的非图格网在每行或每列上的非图量级为1: 只需在网格上有一条对角线条纹,就可以大大减少实心方块的数量,从而达到相同的非影像大小: 您的程序将从该文件中接收到50,000行的输入(1.32 MB tar.gz文本文件; 2.15 MB未压缩),每行代表一个16×16非图解决方案网格,其中随机填充(80%黑色)正方形。输出另外50,000行,每行包含对应输入网格的优化解决方案网格。 每个网格都表示为具有43个字符的base64字符串(从左到右,然后从上到下编码正方形),您的程序将需要以相同格式返回其输出。例如,文件中的第一个网格为E/lu/+7/f/3rp//f799xn/9//2mv//nvj/bt/yc9/40=,并呈现为: 网格从其开始E映射到000100,因此第一行的前六个单元格除第四个单元格外均为白色。下一个字符是/映射到的字符111111,因此接下来的6个单元格全为黑色-依此类推。 您的程序实际上必须为50,000个测试用例中的每一个返回一个具有正确的非地理大小的解决方案网格。如果没有发现更好的结果,则可以返回与输入相同的网格。 返回最少填充总数(以任何语言显示)的程序是赢家,而较短的代码是决胜局。 当前记分牌: 3,637,260 —爪哇Sleafar 7,270,894 -Matlab瑕疵 10,239,288 —乔·Z·巴什(Bash)

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

5
洋葱还是不是洋葱?
The Onion(警告:许多文章都是NSFW)是一个讽刺性新闻机构,模仿传统新闻媒体。2014年,The Onion推出了ClickHole(警告:也经常是NSFW),这是一个讽刺性新闻网站,模仿了诸如BuzzFeed之类的“ clickbait”网站。多亏了坡定律,人们才经常阅读The Onion或ClickHole上的文章标题,并相信它们是真实的,而不知道它们是要讽刺的。相反,在听起来可笑的真实新闻故事中也会发生这种情况-人们常常以为自己是讽刺作家,而不是。 这种困惑自然很适合游戏-给定新闻头条,尝试猜测它是否讽刺。挑战在于如何使用程序来做到这一点。 给定新闻标题(仅由可打印的ASCII字符和空格组成的字符串),1如果标题是讽刺,或者0不是,则输出。您的分数将是正确输出的数量除以标题总数。 按照惯例,不允许出现标准漏洞(尤其是针对测试用例进行优化)。为了实现这一点,我将在一组200个隐藏的测试用例上运行您的程序(The Onion中有100个,Not The Onion中有100个)。您的解决方案的分数必须比公共测试用例的分数少不超过20个百分点才能生效。 测试用例 为了提出针对此挑战的测试案例,我从The Onion subreddit中选择了25个标题(在The Onion及其子站点(如ClickHole)上发布了文章),从Not The Onion subreddit中选择了 25个标题(其中包含真实新闻)听起来像是讽刺)。我对标题所做的唯一更改是将“花式”引号替换为常规ASCII引号并标准化了大写字母-其他所有内容在原始文章的标题中均保持不变。每个标题都在自己的行上。 洋葱头条 Trump Warns Removing Confederate Statues Could Be Slippery Slope To Eliminating Racism Entirely 'No Way To Prevent This,' Says Only Nation Where This Regularly Happens My Doctor Told Me …

4
删除称呼
挑战 嗨,给定一个字符串作为输入,请删除在字符串开头找到的所有称呼。 在50字节以下执行最正确替换的程序将获胜。 称呼 嘿,称呼定义为以下单词之一: 你好 嘿 你好 亲 问候 hai 伙计们 i 你好 iya 干草 ya 你好 嗨 称呼 首字母可以大写。 称呼之后总会有一个逗号和/或一个空格,必须将其删除。逗号和空格可以按任何顺序(,<space>或<space>,)都应删除。 问候语和后面的单词将永远只用逗号和/或单个空格分隔。 然后,您必须在称呼之后大写单词的第一个字母。即使未进行替换,您仍应将输出的第一个单词大写。 大写字母仅适用于小写字母字符(abcdefghijklmnopqrstuvwxyz)。您应该保留其他任何字符。 称呼将始终在字符串的开头。你不应该取代称呼是不是在开头。 不一定总有称呼。 您的代码必须少于50个字节。 例子 Input > Output Salutations, what's going on? > What's going on? hello i have quetions how does juice an avocado > …

3
在Wythoff矩阵模2中打印特定值
Wythoff矩阵是一个无限矩阵,由Wythoff游戏中棋盘上每个正方形的格朗迪数组成。 此矩阵中的每个条目都等于最小的非负数,该数字不出现在条目位置的上方,左侧或对角线西北方。 左上方20乘20的正方形如下所示: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20 2 0 1 5 3 4 8 …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

2
重建丢失的RGB通道
看一下这些自然场景的照片,并从其中取出RGB通道之一: 来源(红色):https : //en.wikipedia.org/wiki/File : Altja_j%C3%B5gi_Lahemaal.jpg 来源(绿色):https : //commons.wikimedia.org/wiki/File : 2007_mather-lake_hg.jpg 来源(蓝色):https : //commons.wikimedia.org/wiki/File : Fox_01.jpg 即使没有其中一个通道,您也可以确定某些事物应该是什么颜色,或者如果丢失通道的重建准确无误,至少可以有个好主意。 例如,这是第一张添加了红色通道的图片,它只是随机噪声: 该图像显然不是红色通道的准确重建。这是因为自然照片通常不使用整个RGB光谱,而仅使用“看起来自然的颜色”的子集。同样,红色阴影将遵循与其他阴影相关的特定梯度。 您的任务是构建一个程序,该程序将拍摄已删除一个通道的照片,并尝试通过重建它认为丢失的通道来尽可能接近原始图像。 通过计算该通道的值在原始图像中的实际值的±15(含)以内的像素百分比,您的程序将在缺失通道与原始图像的通道匹配度上得分范围从0到255,如在标准的8位彩色通道中)。 可以在此处找到对您的程序进行评分的测试用例(9.04 MB压缩文件,6张图像)。目前,它仅包含上面的三个示例图像及其原始图像,但是一旦完成,我将在后面再添加一些图像来制作完整的套件。 每张图像都按比例缩小并裁剪为1024 x 768,因此它们在您的乐谱中的权重相同。可以预测给定公差内最多像素的程序将获胜。

4
寻找将计数器增加到特定数量的最短方法
我有一个柜台。这是一个小型设备,看起来像这样: 显示从0000到9999。它在顶部有一个小按钮,可将计数增加1,在右边有一个小旋钮,其目的是将计数器重置为0。 现在,关于小旋钮的事情是,如果您将其向后旋转,则可以使它再次增加任何所需的数字。因此,如果我按下计数器按钮10次以使计数器显示出来0010,则可以向后旋转旋钮,直到听到微小的喀哒声,然后再次将其向前旋转并直接转到0090。 但是,旋钮每次向前推动数字时,都会始终使同一数字的所有出现次数增加1。因此,如果计数器显示6060,则只能使其增加到7070,而不能增加到6070或7060。另外,旋钮将9s 滚动0而不携带,因此0990将前进到0000而不是1000或1100。 我想知道将计数器设置为特定数字的最有效方法。您的任务是编写一个程序或函数,该程序或函数将确定执行此操作所需的最短按钮按下和旋钮前进的顺序。 您的程序将输入从0000到的4位数字9999,并以以下格式返回一系列步骤: > 0001 C > 0093 C12345678C12345678CCC > 1000 C12345678C12345678C12345678C12345678C12345678C12345678C12345678C > 9999 012345678 其中C代表“按下计数器按钮”,而D0到9之间的任何数字代表“使用旋钮将所有出现的次数D增加1”。 您的程序必须针对所有可能的四位数组合生成有效的步骤顺序,并将对所有10,000个案例所需的步骤总数进行评分。在平局的情况下(最有可能在找到最佳算法时),较短的代码将获胜。

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.