Questions tagged «metagolf»

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

12
所有人都说……
目标给定不包含字符[或的文本输入],请执行以下操作: 对于Amen具有至少一个大写字母的每个实例(因此,所有Amen不包含的实例amen),都输出相同的名称Amen(保留大写)。 对于/all the people said[?: ]/i(这是一个正则表达式)的每个实例,还输出Amen(任何情况都可以)。 在每个输出之后,您可以选择任何常量分隔符,例如换行符,空格或什么都不做。 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 IO范例 Input: I said AMEN! AMEN, PEOPLE! Output: AMENAMEN ; any separator is fine, I choose none. Input: amen amen amen amen Output: ; nothing Input: ; empty Output: ; nothing Input: *blah blah blah* And all the people said? Output: …

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))。 您必须支持任意长度的输入。 您可以从文件中获取输入。 不允许针对测试用例进行优化 确定性输出是必需的 …

13
斐波那契产品
您可以将大于0的数字分解为正Fibonacci数字的唯一和。在这个问题中,我们通过重复减去最大可能的正斐波那契数来做到这一点。例如: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 现在,我将斐波那契乘积称为与上面相同的列表,但加法运算被乘积代替。例如,f(100) = 89 * 8 * 3 = 2136。 编写一个给定正整数n的程序或函数,该函数将返回该数字的斐波那契乘积。 测试用例: 1: 1 2: 2 3: 3 4: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

3
自动元代码高尔夫球
您已经厌倦了所有的代码高尔夫挑战。因此,您决定编写一个程序,该程序将自动为您编写一些Python代码。有3个测试用例: print quickSort([0,7,3,-1,8,10,57,2]) def quickSort(arr): less = [] pivotList = [] more = [] if len(arr) <= 1: return arr else: pivot = arr[0] for i in arr: if i < pivot: less.append(i) elif i > pivot: more.append(i) else: pivotList.append(i) less = quickSort(less) more = quickSort(more) return less + pivotList …
13 python  metagolf 

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 …

1
数学Metagolf疯狂!
Mathemania规格: Mathemania的每个代码都以数字开头2。从中2,您可以执行以下操作: e:求幂。此命令的默认值是平方。 f:阶乘。该命令的默认值是在数字(using f on 2 = 2! = 2)上使用单阶乘。 r: 根。该命令的默认值是将数字平方根。 c:天花板功能。 l:发言权功能。 要在Mathemania中生成数字,您必须将这些命令串在一起,这些命令在number上从左到右执行2。 例子: ef = (2^2)! = 4! = 24 rl = floor(sqrt(2)) = floor(1.4...) = 1 er = sqrt(2^2) = sqrt(4) = 2 efrrc = ceil(sqrt(sqrt((2^2)!))) = ceil(sqrt(sqrt(24))) = ceil(sqrt(4.89...)) = ceil(2.21...) = 3 的e,f和r命令可以通过额外Mathemania命令(这也与开始被改变2为“碱基”号)通过将括号中的改变的功能后,并把它里面的Mathemania命令以生成不同的求幂,阶乘和根。 …
12 math  metagolf 

6
用尽可能少的不同字符编码程序,
目的是编写一个程序,该程序以尽可能少的字符对另一个程序(输入)进行编码。 计分 分数等于输出所需的不同字符数。 分数越低越好。 规则 没有目标语言且命令集有限。(没有Brainf ** k,Whitespace等) 编辑:我的意思是至少有26个有效字符,A不会改变Brainf ** k程序的运行方式,因此您无法计算此字符。同样适用于空白。 在编写此问题时,目标语言必须存在。 您必须包含一个小说明,说明如何存档分数。 输入程序有效。 编码的程序必须是与输入语言相同的有效程序。 编码的程序必须执行与原始程序相同的工作。 您的编码器必须适用于该语言的每个有效程序。 包括一些样本输入和输出。 笔记 编码器可以用任何语言编写,而不仅限于它所针对的语言。 这不是代码高尔夫,而是鼓励使用可读程序。 伟大的目标是看用这种语言写东西需要多少个不同的字符。我不允许BF等,因为不会有挑战。 这是受“以尽可能少的不同字符打印一个字符串”的启发,您可以将其作为该问题的元高尔夫。 例 在Java中,您可以\uXXXX改用其他字符。有效条目以这种方式对输入中的每个字符进行编码。得分为18。(\ 0-9a-f) Tcl中的代码对Java程序进行编码: set res {} foreach char [split [read stdin] {}] { append res [format \\u%04x [scan $char %c]] } puts $res

4
在Brainfuck中编码URL
受这个问题的启发,您今天的目标是用头脑风暴对URL进行编码。 我的浏览器被黑了!位置栏已经变成了一个让人烦恼的解释器。我需要一个将URL转换为“笨蛋”程序的程序。我的电脑也很慢,所以如果Brainfuck程序很小,那就更好了。 哦,我的Twitter上只有一个工作选项卡处于打开状态。因此,您只能通过推文向我发送该程序。 用任何以字符串作为输入并输出“脑力激荡”程序的语言编写适合于tweet(140个字符)的程序。 该Brainfuck程序将在没有输入的情况下运行,并将生成输出。 此输出将插入到Google Chrome浏览器的位置栏中,并执行。 如果Google Chrome的行为与您输入的#1输入字符串所获得的行为相同,则该解决方案有效。URL缩短程序的重定向被认为是不同的行为-至少保持在同一域中。 您可能会认为Brainfuck解释器在每个单元格中都有无限精度的有符号整数,并且单元格的数量不受限制。 您的分数取决于为编码以下URL集而生成的Brainfuck程序的总长度: https://www.google.com/ /codegolf/47895/ http://www.golfscript.com/golfscript/examples.html http://en.wikipedia.org/wiki/Percent-encoding ftp://ftp.freebsd.org/pub/FreeBSD/ https://github.com/isaacg1/pyth/blob/master/doc.txt#L92 http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README 得分最低者获胜。

8
生成一个Brainf_ck程序,该程序输出给定长度的字符串
您的朋友正试图闯入一个具有特殊锁定系统的保险库:它需要在特定位置轻敲几次。您的朋友发现了该号码(范围为1 ... 99999),并拥有一个可产生所需敲击声的小工具。但是,该小工具是Brainfuck解释器!因此,您的朋友需要为其提供一个Brainfuck程序,该程序显然应该尽可能短(小工具的I / O速度很慢)。 您的任务是帮助他!用任何语言编写一个程序或子程序,该程序或子程序接受数字作为输入N,然后输出Brainfuck程序,该程序不进行任何输入,而是输出一串可打印的ASCII字符(不包括空格字符-范围为33的代码... 126)的长度N。 示例:对于input 10,输出可能是 +++++++++++++++++++++++++++++++++.......... (但我可以确定可以缩短它!) 您的分数将是以下值N(它们是随机数)的输出长度的总和: 55 68 15 28 841 838 522 846 4898 9004 9363 3810 13230 67175 37231 44701 哦,您将通过Twitter将您的代码(生成器程序)传输给您的朋友。因此,请确保它不超过140个字符! PS Brainfuck语言有多种变体。假设磁带在两个方向上都是无限的(或“圆形且足够大”),并且这些单元具有32位int容量(有限,并且能够容纳高达99999的数字)。而且,无需包装:当单元溢出时,机器会自毁!

3
打入99中的每个ASCII字符
99是我本周早些时候为挑战而发明的一种编程语言。为99写一个解释器。(发明了,但要感谢你们的六个人,才不需要实施。) 在99中,您可以将单个ASCII字符打印到stdout,但是由于语言的限制,并非始终清楚如何尽可能简洁地打印特定字符。 对于128个ASCII字符中的每一个,编写一个不带任何输入并输出该唯一字符的99程序。您可以手工编写任何或所有这些答案,也可以编写其他程序(以您喜欢的任何语言)为您生成它们。 您的128 99个程序中每个字符的总和就是您的分数。最低分获胜。换行符视为一个字符。 请记住,在99中,只有偶数大小的变量(例如9999输出ASCII字符)(奇数大小的变量输出整数)。它们的值除以9,然后取为mod 128,因此将值映射到ASCII字符不需要在一定范围内。例如,内部值297、1449和-855都对应于该字符,!因为当它们被9除并取为mod 128时,它们全部变为33,这是的字符代码!。 如果您需要99的解释器,建议您使用Mac的Python答案。 我知道我说过我的下一个挑战将是更具互动性,但我仍在为那个挑战而努力。

1
自显示图像[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 11个月前关闭。 背景 有自解压.ZIP文件。通常,它们具有扩展名.EXE(并通过执行文件将其提取),但是将其重命名为时.ZIP,您可以使用一些ZIP提取软件来打开文件。 (这是可能的,因为.EXE文件需要特定的标头,而.ZIP文件则需要特定的预告片,因此可以构建同时具有.EXE标头和.ZIP预告片的文件。) 你的任务: 创建一个程序来创建“自显示”图像文件: 程序应以一些64x64图像(至少应支持4种颜色)作为输入,并以一些“组合”文件作为输出 程序的输出文件应由普通图像查看器识别为图像文件 当使用图像查看器打开输出文件时,应显示输入图像 对于任何操作系统或计算机类型,输出文件也应被识别为可执行文件。 (如果生成了用于不常见的操作系统或计算机的文件,那么如果存在开源PC仿真器,那就很好了。但是,这不是必需的。) 执行输出文件时,还应显示输入图像 很可能需要重命名文件(例如,从.PNG到.COM) 不需要程序及其输出文件在同一操作系统上运行;例如,该程序可以是Windows程序,并且可以在Commodore C64上执行输出文件。 获奖标准 产生最小输出文件的程序获胜 如果输出文件的大小根据输入图像而有所不同(例如,由于程序压缩了图像),则由程序创建的最大可能的输出文件代表了最多4色的64x64图像计数 顺便说说 在StackOverflow上阅读此问题时,我想到了以下编程难题。

11
N次程序的N次程序
给定一个正整数数组A作为输入,请生成一个程序,该程序重复k多次后,将输出k该数组的th(1-index)值。 例如,如果数组为[1,11],则输出应该是输出的程序1,并且当重复两次时,输出为11。类似于print(end="1");Python 3的代码可以工作:print(end="1");打印1和print(end="1");print(end="1");打印11 解决所有测试用例的最小代码长度总和。您的元代码应在60秒内解决500个测试用例,而每个解决方案代码应在10秒内返回。元代码和解决方案代码不必使用相同的语言,但是您的元程序生成的所有解决方案都应该使用相同的语言。 预测试数据和生成器可以在这里看到。7天后将使用提交时间的总和(例如12:34平均1234)作为随机种子,并生成另一个测试用例作为最终测试用例。 最终种子是GMT + 8中的7335,因此最终测试数据在此处

3
随机Brainfuck编译器
乔是您的普通BF开发人员。当他接到老板打来的电话时,他即将把代码更改检入到存储库中。“乔!新客户的机器坏了!动脑筋的解释器在程序执行之前将所有单元设置为随机值。没有时间修复它,您的代码将不得不处理它。” Joe对此考虑不多,当老板再次打断他时,他打算编写一个程序以将前一百万个单元格设置为零-“ ...而且不要考虑使用蛮力,代码必须尽可能地小。” 现在您必须帮助可怜的乔! 技术指标 您将获得一些有效的Brainfuck代码作为输入 然后,您的程序将修改代码,以便它可以在随机的Brainfuck解释器上运行 这意味着在程序执行之前,可以将单元格设置为任何值。 无论初始条件如何,新程序都应具有完全相同的行为。 解释器的最大像元值为255(带有换行符)和无限长的磁带。 计分 您的分数是编译器大小(以字节为单位)加上测试用例大小总和的10倍。最低分显然是获胜的。为了减轻测试用例的优化,如果我有任何怀疑,我保留更改测试用例的权利,并且可能会在选择获胜者之前这样做。 测试用例 (我从esolangs页面和此网页获得了这些信息:http : //www.hevanet.com/cristofd/brainfuck/)。最后还要感谢@Sparr。 你好,世界: ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. 反向输入: >,[>,]<[.<] 二的幂(无限流): >++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<] 10000以下的方块: ++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-] 斐波那契流: >++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<] 输入之前的ASCII序列:(,[.[>+<-]>-]这需要根据输入改变单元格编号)

2
一百个最常用的单词
之所以写这个问题,是因为“ Thing Explainer”很有趣,并且给了我一个主意。 编写“使计算机做事的东西”,以读取/获取一组字母,数字和类似的东西"#%|?,True / 1如果所有单词都属于该集合,则返回。 如果所有单词都不属于该集合,请返回不属于该集合的单词。 在任何情况下都可以认为本网站是正确的。编写规则是为了遵守该站点上的规范。 例子: Truthy: 如果将第一条水平线上方的整个文本粘贴为输入,则代码应返回真实值。 以下几行应返回真实值(输入之间用分隔###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 虚假的: 在以下示例中,输入和输出用分隔***。不同的测试用例用分隔###。 This code …
9 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 
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.