Questions tagged «metagolf»

Metagolf正在研究元程序的输出。一个元程序产生一个解决给定任务的程序,输出的长度决定了原始程序的分数。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

10
只能有1个!
给定正整数n,您的任务是生成等于number的表达式n。 要注意的是:只允许1在输出中输入数字。 您可以使用的运营商是: +,-,*和/ /是浮点除法(so 5/2 = 2.5)。 sqrt(作为s) ceil和floor(分别为c和f) ! (阶乘) 在这种情况下,阶乘仅适用于正整数。 您也可以将堆叠1在一起,因此11在输出中可以接受类似的内容。但是,它们的数量与数量中的相同1(因此11算作2 1)。 您还必须在输出中包括方括号,以便通过操作顺序执行输出时,输出中的表达式将产生输入。但是,它们不算作操作。 例子: 输入= 24,一个可能的输出= (1+1+1+1)! 输入= 11,一个可能的输出= 11 输入= 5,一个可能的输出= c(s((1+1+1+1)!)) 的平方根的上限24是5。 规则: 您可以确保输入是从1到的正整数2^31-1。 2^31-1即使未经测试,您的程序也必须能处理最大为的正整数。 您的程序必须在1小时内完成处理集中所有数字的所有输出。 程序每次运行的结果都必须完全相同-而且,没有种子。 您只能对表达式进行硬编码,最多10个数值。 不允许在输出中的任何地方使用虚数(所以没有s(some negative number))。 也不允许您使用大于2^31-1或小于-2^31+1输出中任何地方的数字,即使当它们是sqrted或/ed(所以no (((1+1+1)!)!)!或((1+1+1+1)!)!)时也是如此。 一组数字: 945536, 16878234, 32608778, 42017515, 48950830, 51483452, 52970263, 54278649, 63636656, 78817406, 89918907, …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

1
编程杯叠机器人
我敢肯定,每个人都可以看到杯子可以堆成金字塔(和其他形状)之前: A A A A A A A A A A A A A A A A A 是的,A绝对足够代表杯子。 可以在地面上,结构右侧或两个相邻杯子的顶部添加新杯子。这是上面的结构,但是新杯子的所有可用位置都标有_: _ A A A A A _ _ A A A A A A A A A A A A _ _ _ 假设我们要建立一个可以组装这些杯子叠的机器人。机器人将了解两条简单的指令来操纵这种结构: a:按照从左到右的阅读顺序在第一个可用位置添加一个新杯子(即,从上到下,从左到右扫描行,直到找到可用的位置,然后将杯子放在那里)。上面的示例将变为: A A A A A …

10
Brainf ***高尔夫球手
用编程语言编写的最简单的代码之一是程序打印字符序列(例如,“ Hello,world!”)。然而,S ^ ō 米é é 小号Ø 牛逼é [R 我ç编程语言,如Brainfuck,连这个简单的代码是很烦人的写入。 您的任务是编写一个程序(不必使用Brainfuck编写),该程序将打印(最小长度)Brainfuck程序,并打印给定的文本。 输入值 字符序列(介于1和之间255)由任何格式(变量,参数,stdin,文件等)给出。 输出量 输出是有效的(无不匹配[和])脑力激荡的代码(假设无符号的8位换行单元和左右两侧单元的数量不受限制)打印作为输入给出的确切字符串。 例如,输入的一种可能的输出A是++++++++[<++++++++>-]<+.。 您的程序不必花很长时间(>2m)即可运行。 BF程序不必花很长时间(>10s)即可运行。 计分 (注意:当前的评分方法可能会更改,因为它不容易计算...) 程序的长度(生成BF代码)本身并不重要。但是,在程序代码中对BF代码进行硬编码是不正确的。唯一可接受的范围(例如一个BF码打印的单个字符。0x01:+.)的BF码可能是硬编码的。 分数是打印这些字符串的BF代码的长度总和。 Hello, world!附加了一个0x0A(\n)的字符串(即“ Hello,world!”程序) 单个字符0x01〜0xFF 这255个BF代码的长度总和乘以1/16,四舍五入后加到得分上。 前16个字符串的列表,该列表是通过删除所有零长度字符串来拆分11-11-11生成的字节的随机序列而生成的0x00。 Lenna.png,删除所有0x00s。 这首歌的歌词是99瓶啤酒,开头是99 bottles~,换行符是0x0A,段落之间用两个0x0As 分隔,结尾没有换行符。 您可能提供的其他字符串。 您的程序可能包括计算自身的分数。 当然,得分最低的代码将是赢家。

4
元正则表达式高尔夫
本着xkcd的精神 编写一个程序,使用任意对列表进行正则表达式高尔夫。该程序至少应尝试使正则表达式变短,/^(item1|item2|item3|item4)$/不允许仅输出或类似程序。 评分基于生成最短正则表达式的能力。测试清单是在这里找到成功和失败的美国总统候选人的清单(感谢@Peter)。当然,该程序必须适用于所有不连续的列表,因此仅返回总裁的答案就不算在内。

9
反golfscript反golf:创建一个任务,其中GolfScript或J被您的(常规)lang超越。
您需要做三件事: 一个任务,声明牛逼。 用通常不用于打高尔夫球的语言A解决任务。 用通常用于打高尔夫球的语言B解决任务。不要试图夸大B来提高得分,而要想像B是您的竞争对手写的。 使用常识来定义typically used for golfing,尝试为其他用户带来最大的乐趣。 其他用户可能会提出更好B的建议(可能包括其他“古怪”语言)。 得分(length_in_bytes(B)+5)/(length_in_bytes(A)+5)越高,越好。(也许应该更改得分公式?。) 主要思想是发明一项任务,使通常在代码高尔夫中表现良好的语言遇到问题。在给定任务中,可能是常用语言的突然强项,也可能是某些golflang的突然弱项。 避免使用提及特定编程语言的任务,例如Input a string and execute it as a Scheme code。

8
打高尔夫球的Flak整型
整数很难用Brain-Flak表示。有8个运算子: () Evaluates to 1, but does not push anything on any stack [] Evaluates to an indeterminate value for the purposes of this question {} Removes the top of the stack and evaluates to it <> Switches to or back from the alternate stack and evaluates to zero (foo) …

7
编写代码高尔夫球手[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 您的工作(如果您选择不拒绝它)是编写一个程序,该程序将使用您选择的语言“击打”一段给定的代码。 基本功能: 删除多余的空格 删除评论 “高级”功能: 合并声明(int x; int y; int z;至int x, y, z;) 使用基本控制结构的较短变体(while(1)替换为for(;;)) 移动码左右(i = 0; while(i < 10) { /* ... */ ++i; }到for(i = 0; i < 10; ++i) { /* ... */ }) 等等

3
满天星斗的星际高尔夫
Starry是一种有趣的深奥编程语言,其中的代码仅+*.,`'由每个字符所代表的实际命令由其前面的空格数确定。即使对于高尔夫球的固定输出挑战,这也使它变得棘手,因为不同的命令可以占用非常不同的字节数。特别是,数字文字具有一元表示形式,因此有必要通过对较小的数字进行运算来建立较大的数字。 因此,这个挑战是关于编写可以打高尔夫球这样的Starry程序的程序。 星空如何运作? (在esolangs上未指定一些细节,因此我将继续使用Ruby解释器的行为。) Starry是一种基于堆栈的语言,具有一堆任意精度的整数值(最初为空)。 唯一有意义的字符是: +*.,`' 和空格。所有其他字符将被忽略。每个空格序列后跟那些非空格字符之一代表一条指令。类型指令的依赖于非空格字符和数字的空格。 这些说明是: Spaces Symbol Meaning 0 + Invalid opcode. 1 + Duplicate top of stack. 2 + Swap top 2 stack elements. 3 + Rotate top 3 stack elements. That is, send the top stack element two positions down. [... 1 2 3] …
25 metagolf  stack  starry 

1
Auto BATCH高尔夫球手
我喜欢BATCH,尽管它由于缺乏非整数支持而令人震惊地缺乏功能性命令。为什么?因为这有效: SET var=SET %var% i=0 这将评估为: SET var=SET SET i=0 太棒了,不是吗?我以前在BATCH程序中使用过此技术,因为它可以节省字节! 您应该接受的挑战是,以这种方式“高尔夫” BATCH程序。您将通过包含SET会评估程序部分内容的语句来减少输入BATCH程序的字节大小,并且不得以其他任何方式修改程序。(例如,这不允许将变量名称重命名为更短的名称。请记住,BATCH(从变量开始)是不区分大小写的。)您的得分计算如下: score = # of characters in your program + 5*(net result bytes in test cases below) 我保留添加更多测试用例的权利,以阻止为测试用例优化程序的工作。 对于这一挑战的缘故,你的SET语句不能包含控制字符(|,<,>,%)或换行。除了在set语句内移动代码段外,您不能修改代码。(也就是说,您可能不会删除不必要的空格,将其替换EQU为==,等等。)我们假设行以结束\n。 测试用例 每个测试用例都在单独的代码块中,并且每个测试用例都是独立的,这意味着您仅应假设其中给出了内容。(即,如果您SET d=SET在一个程序中,该语句将不会自动提供给任何其他程序)。每个示例结果都可以在每个测试用例之后找到。测试用例之间有界线。 @回声关闭 SET增量= 10 :环 IF%increment%EQU 0 GOTO结束 回声%increment% SET / A%increment%-= 1 GOTO循环 :结束 出口 @回声关闭 …
25 string  metagolf 

9
打印所有3 x 3坚固的正方形
坚固的正方形(类似于魔术正方形)是整数1到N 2在N by N网格上的排列,以使每2 by 2子网格具有相同的总和。 例如,对于N = 3,一个坚固的正方形是 1 5 3 9 8 7 4 2 6 因为四个2 x 2子网格 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 全部加起来等于23, 23 = 1 + 5 + 9 + 8 = 5 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

4
富里耶的高尔夫球场
挑战 给定一个字符串作为输入,沿输出该字符串的Fourier程序运行。 在Fourier中,没有简单的方法来输出字符串:您必须检查每个字符代码并将其输出为字符。 傅里叶 该语言基于累加器,该累加器是全局变量,在程序启动时将其初始化为0。几乎所有操作员都使用此语言。只有一些不会更改累加器的值。 字符输出 a 将累加器的值作为ASCII码并输出字符。不更改累加器的值。 如果累加器大于255,则程序将返回错误。同样,如果累加器小于0。 编号 o 输出累加器的值。不更改累加器的值。 增加 ^ 将累加器增加一。 减少 v 将累加器减一。 加 +x 将累加器设置为累加器的值加x的值。 减去 -x 将累加器设置为累加器的值减去x的值。 乘 *x 将累加器设置为累加器的值乘以x的值。 划分 /x 将累加器设置为累加器的值除以x的值。(请注意,这是整数除法,因此1/6得出0) 数 n 将累加器设置为整数n。 注意 在这里,x并且n可以是从0到的任何整数2^32-1。 更多信息 您只能使用上述运算符。因此,如果输出的傅里叶程序使用以下任何一项,则它是无效的(请注意,允许使用以下运算符作为赏金): 重复循环 如果陈述 变数 随机 模数 用户输入 大于/小于运算符 平等经营者 清除萤幕 时间延迟 日期功能 您的程序可以是完整程序,也可以是函数,可以通过STDIN,文件或函数参数输入。您也可以直接从Internet获取输入。 请注意,如果vv您的代码中包含,则应将其替换为-2。这同样适用于^^与替换它+2。 …

5
StickStack编号
StickStack是一种非常简单的基于堆栈的编程语言,只有两条指令: | 将堆栈长度推到堆栈上 -从堆栈中弹出前两个元素,然后将它们的差值推回(second topmost - topmost) 语言细节 程序开始时堆栈为空。 所有指令从左到右依次执行。 如果堆栈中的数字少于2,则该-指令是非法的。 在执行结束时,堆栈应恰好包含一个数字。 StickStack程序可以生成任何整数。例如: |||--||-- generates the number 2 through the following stack states: [] [0] [0, 1] [0, 1, 2] [0, -1] [1] [1, 1] [1, 1, 2] [1, -1] [2] 要评估您的StickStack代码,您可以使用此在线(CJam)评估程序。(感谢@Martin提供的代码。) 任务 您应该编写一个给定整数值作为输入输出的程序或函数,或者返回一个代表输出给定数字的StickStack程序的字符串。 计分 您的主要得分是以下给定测试用例的StickStack程序的总长度。分数越低越好。 仅当您在所有测试用例上运行了程序并计算了分数时,您的提交才有效。 您的次要(抢七)得分是生成程序或函数的长度。 输入测试用例 (每个数字都是不同的测试用例。) …

10
元高尔夫挑战赛
对于这一挑战,您必须解决这一挑战。 比赛结束了!检查问题的结尾 眼镜: 编写最小的代码(任何语言*)。 答案的分数是以下各项的总和: 代码长度,不带空格。 使用相同语言的答案数的平方。 比赛中最大语言名称的长度减去您语言的长度。 减票减去减票(又名减投票总数) 写出用户的位置和分数。 每个用户只能写一个答案。 最低分获胜。 测试: 因此,在比赛结束时,可能的输入可能是(STDIN): 这些列是:用户名,语言,代码长度(不带空格)和TotalVotes UserA Python 100 1 UserB Perl 30 2 UserC Java 500 3 UserD Brainfuck 499 4 UserE Perl 29 5 如果您的用户名带有“我的用户名”之类的空格,它将变为“ MyUserName”,因此输入将始终恰好有4列。 输出将是(STDOUT): 1 UserE 33 2 UserB 37 3 UserA 103 4 UserD 496 …

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.