Questions tagged «metagolf»

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

3
当生活给你柠檬时,做柠檬水
挑战 您将得到一个输入字符串,任何地方的话"Lemon"是发现它应转换到"Lemonade" ,但是在a,d和e在句子中必须借用了别的地方。 例 输入示例: 我小时候发现一个柠檬 示例输出: 我小时候就喝柠檬水 该柠檬水是由从原来的偷下标字母创建 我foun d柠檬水WH é ñ我是一个孩子 这只是一个可能的输出示例,“ e”,“ d”和“ a”可以从任何地方获取(当然单词除外lemon) 评论 •如果,或s 不足e,则必须输出给定字母可进行的操作。例如,输入将输出adbdblemonbblemond • lemon文本可能并不总是独立的(两边都有空格)。例如,您可能lemons在输入中的某处有单词,而输出应为lemonades •输入可以包含任意数量的lemons,甚至0 lemons(在这种情况下,输出将与输入相同) •您可以用大写和小写字母来制作您的柠檬水,例如leMon可以变成leMonade,而ade借用可以是任意大小写(因此也可以变成leMonADe)。您借用的信件的大小写必须保持与借用时相同。(示例输入->输出,he hAD lemOn-> h h lemOnADe) •不必是一个完整的程序,仅一个功能就可以。 •您可以假设输入仅是CP437字符集 高尔夫代码 这是代码高尔夫球,因此赢得最少的字节数! 伪测试案例 *注意:对于任何给定的输入,可能会有多个可能的输出,因此您的程序可能无法完全按照这些测试用例的方式输出,这仅仅是为了使人们可以理解逻辑: 输入:EpaD leMons 输出:p LeMonaDEs 输入:hello world 输出:hello world 输入:柠檬柠檬 输出:柠檬柠檬 *(本e,a,d字母不应该从另一个“柠檬”拍摄) 输入:HE HAD柠檬水 输出:HH …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

7
输出基本证明
背景 在某些可能的将来,世界会将其数字系统从十进制(以10 b10为基数或)转换为其他基数(二进制b2,八进制b8,十六进制b16甚至一元b1,在这种情况下,我们很费力!)。因此,为应对这一可能改变世界的事件,您决定对所有程序进行基础验证。这可以通过仅将0s和1s与运算符结合使用以替换现有的数字常量来完成。 但是,只有一个问题:您需要更改大量程序,而将每个数字手动转换为表达式将需要数周!因此,您决定编写一个程序(或函数)来为您确定应替换每个数字的表达式。 输入项 输入将为正整数。您的代码必须能够处理最多1000个整数。 (如果您的代码支持小数和/或负输入,请参阅下面的评分。) 输出量 您的代码必须以至少一种语言输出计算结果为表达式的表达式。这可以是任何语言;它不一定要与您编写的程序或函数相同。此外,此表达式也不必是完整的程序或函数。 为了清楚起见,输出可能包含以下任何操作: 递增/递减 加/加 减去/取反 乘/双(仅在不直接涉及数字的情况下2!) 除法/取模 指数/对数 平方/平方(再次,仅当这些不直接涉及数字时2!) 按位运算(bOR,bAND,bNOT,bXOR,移位) 设置/获取变量 堆栈操作 你可能不使用eval()或输出的任何类似的功能。您也可能在输出中不使用执行上述功能以外的任何功能的功能。 哦,还有另一件事:由于我们希望输出在尽可能多的底数内有效,因此它可能包含的唯一数字常量是0and 1。10除非(ten)这样的数字是不允许的,除非该语言将其解释为a 1和a 0。也不允许使用字符串包含数字,就像使用CJam的A- K(代表10- 20)这样的字符一样,也是不允许的。 测试用例 (所有输出均使用JavaScript,但可以使用其他语言。) 输入1: 2 可能的输出1: 1+1 输入2: 13 可能的输出2: (a=1+1+1)*a+a+1 输入3: 60 可能的输出3: (b=(a=1+1+1+1)*a)*a-a 输入4: 777 可能的输出4: (c=(b=((a=1+1+1+1)*a-a+1)*a)*a+b)+c+c-a+1 输入5: 1000 可能的输出5: Math.pow((a=1+1+1)*a+1,a) 计分 …

5
最短的简单正则表达式匹配二进制单词
任务 将简单的正则表达式定义为仅包含以下内容的非空正则表达式 字符0和1, 分组括号(和), 一个或多个重复量词+。 给定0s和1s 的非空字符串,您的程序应找到与完整输入字符串匹配的最短简单正则表达式。(也就是说,当匹配一个简单的正则表达式时,假装它由^ 和 预定$。)如果有多个最短的正则表达式,请打印其中的一个或全部。 code-golf,所以最短的提交(以字节为单位)获胜。 测试用例 1 -> 1 00 -> 00 or 0+ 010 -> 010 1110 -> 1+0 01010 -> 01010 0101010 -> 0(10)+ or (01)+0 011111 -> 01+ 10110110 -> (1+0)+ 01100110 -> (0110)+ or (01+0)+ 010010010 -> (010)+ 111100111 -> 1+001+ …

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。主题:翻译 编写一个程序或函数,该程序或函数在Prelude中获取程序的源代码,并在Befunge-93中输出等效程序的代码。为了使程序等效,对于任何给定的输入,它都应产生与Prelude程序相同的输出,并且仅当Prelude程序停止时才停止。 输入语言:前奏 Python解释器: 显示代码段 #!/usr/bin/python import sys NUMERIC_OUTPUT = True NUMERIC_INPUT = True try: filename = sys.argv[1] except: print "Usage:", sys.argv[0], "<filename>" raise SystemExit try: inFile = file(filename) except: print "Error when opening", filename raise SystemExit # code is kept as a list of voices, each voice a string …

4
计算实际数字
定义 正整数n是一个实际数字(OEIS序列A005153),前提是所有较小的正整数都可以表示为的不同除数之和n。 例如,18是一个实际数字:其除数为1、2、3、6、9和18,小于18的其他正整数可以形成如下: 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

9
写一个头脑翻译
在任何编程或脚本语言X,写一个程序,需要一个有效的brainfuck源代码从标准输入和输出,标准输出,程序的源代码,写的语言X,这将输出同样的事情作为brainfuck程序会做。 您的程序必须适用于任何有效的Brainfuck程序,包括空文件。 您的分数将等于源代码的字节数,加上给定以下输入的输出字节数: +++++ [-] +++++ +++++ [ > +++++ ++ > ++ +++ ++++ + > +++ <<< - ] > ++ . H > + . e ++ +++ ++. l . l +++ . o > ++ . space < +++++ +++ . w ----- --- . …

1
Brainflak乘法Metagolf
这个问题是旨在庆祝Brain-Flak的第一个生日的几个Brain-flak Birthday挑战中的第一个!您可以在此处找到有关Brain-Flak诞辰的更多信息 去年夏天,我们有了Brain-flak Integer Metagolf,此后产生的答案对Brain-Flak社区非常有用。使Integer Metagolf如此高效的主要因素是一种称为乘法硬编码的技术。 在Brain-Flak中,运行时乘法非常昂贵。已知的最短乘法片段为: ({}<>)({<({}[()])><>({})<>}{}<><{}>) 被Megatom发现 但是,有一种非常简单的方法来创建编译时间乘法。例如,以下代码将乘以5: (({})({})({})({}){}) 在线尝试! 这是有效的,因为连续的表达式被添加在一起。每个({})都对堆栈不执行任何操作(将其{}弹出并(..)向右推),并求值到堆栈顶部的任何内容。所有这些表达式加起来等于堆栈顶部的五倍。 对于n以下任何字符串表达式,将创建一个片段,该片段会将堆栈顶部乘以n: "("+"({})"*(n-1)+"{})" 这是通过制作n所有表达式都计算到堆栈顶部的表达式来实现的。第一个n-1实际上不更改任何内容,最后一个在推送之前删除堆栈的顶部。 对于复合数字,您可以将多个较小的表达式链接在一起以节省字节。例如,您可以乘以5两次来乘以25: (({})({})({})({}){})(({})({})({})({}){}) 这很简单,对于某些数字来说,它工作得很好,但是有更好的方法可以做到这一点。例如,我想出的一种方法使用数字的二进制表示形式。(这是一个python实现)这种新方法比前面显示的简单字符串表达式要有效得多,但它还没有结束,有各种各样有趣的方式来对乘法进行硬编码,而且可能还没有发现。 所以我认为现在是时候看看我们能取得多好的成就。 大脑爆发概述 这是您对此挑战需要了解的所有信息的描述。 Brain-Flak有“ nilads”和“ monads”。Nilads是括号,里面没有任何内容。每个尼拉德人都会做一件事情,并返回一个值。对于这一挑战,我们关注的两个尼拉德是{}和<>。 {}弹出活动堆栈的顶部并返回其值。<>切换活动堆栈和活动堆栈,以便活动堆栈变为非活动状态,非活动堆栈变为活动状态,它返回零。 Monad是其中包含东西的括号。他们接受一个参数,即它们内部所有内容的总和,有时执行一个动作,然后返回一个值。我们关心的是,这些三是(...),<...>和[...]。对于此挑战,最重要的单子(...)取整内部的值并将其推入活动堆栈。然后,它返回参数。 <...>并且[...]都是“惰性”单子,即它们不执行任何操作,而是修改它们传递的值。 <...>无论传递的参数如何,总是返回零。同时[...]总是返回参数次数-1。 带有解释的示例程序 如果您从未使用Brain-Flak编程,那么最好使用描述的操作来查看一些示例程序。 ({}{}) 这会将堆栈中的前两个数字相加。每个都{}从堆栈中弹出一个值,然后(...)将其和推回。 ({}[{}]) 同样,这将从堆栈中减去堆栈中的第二个项目。就像之前每个都{}弹出一个值一样,但是[..]第二个值前后会导致它被添加。再次(...)推动总和。 ({}<{}>) 这将删除堆栈中的第二个值,并保持最高值不变。它的工作方式与最后两个一样,只不过第二个值被静音,<...>因此推入仅将第一个值推回。 (({})) 这将在堆栈顶部复制第二个值。它通过弹出堆栈顶部并{}获取其值来执行此操作,(..)然后先将其推回其值求值。第二个(...)取第一个返回的值,并将其推入堆栈。创建第二个副本。 任务 给定一个整数,n创建一个堆栈干净的Brain-Flak代码段,该代码段将当前堆栈的顶部乘以n。 您被允许使用以下Brain-Flak操作 (...) -> Push Monad, Pushes the result of …

4
实际上是整数Metagolf
背景 实际上(Seriously的后继者)是我在2015年11月创建的基于堆栈的命令式高尔夫球语言。像许多其他高尔夫球语言一样,它具有一字节的命令,这些命令根据堆栈的内容执行不同的功能。它的特色之一是数学-它具有多种基于数学的命令。但是,为了执行数学运算,您必须将(一个或多个)数字放在堆栈上。因为有许多不同的选项,所以以尽可能少的字节来推送特定值是很棘手的。在此挑战中,您将确切地做到这一点:用尽可能少的字节数表示“数字”(特别是整数)。 挑战 给定一个整数N作为输入,输出有效的“实际”代码,导致N被压入堆栈。 输入将在32位有符号二进制补码整数(即包含在内的整数[-2147483648, 2147483647])范围内。 结果必须是整数(不是浮点数,字符串,列表或函数),并且必须在堆栈的顶部。 您可能不对堆栈的内容做任何假设(例如堆栈是否为空)。堆栈上的任何现有值都不得修改或重新排列。 实际上,在我撰写此挑战时,我使用了最新的提交。如果我进行了错误修复或性能增强(或任何其他不删除或更改允许的命令功能的较小更改),则将更新此版本。 您的解决方案必须至少与平凡的解决方案一样好(:在输入之前加上数字数值)。 您的分数将是平凡解的长度之和减去用于选择1000个32位带符号二进制补码整数(用于评分)的输出长度的总和,可以在下面找到。我保留在必要时随时更改得分整数的权利(例如针对测试用例进行优化或测试用例不够彻底)。 解决方案必须在30秒内为每个输入输出有效答案。定时将在标准的免费Cloud9工作区上完成。 指令 为简单起见,(当前)208个命令中仅可以使用141,并且那些与数字运算无关的141的许多重载已被删除。以下是允许的命令列表(格式为<hex code> (<symbol>): <descriptions of functions based on stack values and types>: 0B (♂): take the next command and map it over the top of the stack (for example, ♂A is equivalent to `A`M) 1F (▼): pop …

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

1
正则表达式验证正则表达式[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 构建一个将接受正则表达式字符串作为输入的正则表达式,并检查其是否有效。基本上,您的正则表达式应该能够验证自己。(任何无效的正则表达式都不应进行验证,因此您不能使用.*。;)) 您的风味必须得到众所周知的实现(Perl,sed,grep,gawk等)的完全支持,并且必须完全支持那些实现所支持的功能。[不用担心律师说话;我只是想消除所有可能导致智能***的漏洞。] 我会对此进行编码,但是我担心它会给那些知道和使用非功能丰富的风味的人带来优势。还是我的担心没有根据?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

2
压缩布尔公式
句法 ~不 /\和 \/或 t真 f假 P,Q,FISH,等:变量 (运算符按优先顺序给出) 介绍 可以将某些布尔公式更改为不同的形式以使其更短。例如,公式 ~(~P /\ ~Q) 可以更改为较短的形式 P\/Q 而公式 P \/ ~P 可以更改为较短的形式 t 挑战 在这一挑战,则需要编写一个程序,给定仅使用任何布尔式/\,\/,~,t,f,括号,布尔变量(大写)和空白,输出一个最短的形式(由于可能存在多于一个的最短形式),该表达式的字符对于所有变量分配都是等效的。最短的代码(使用任何语言)均获胜。I / O可以任何合理的方式完成。 另外,由于很难验证答案,因此包括(但不是必需的)简短说明代码的工作原理将很有帮助。

1
Google的跳兔
2017年12月4日,Google Doodle是一款具有兔子功能的图形编程游戏。后来的级别相当重要,它们似乎是原子高尔夫球挑战的绝佳候选人。 细节 游戏 有四种可用的动作:向前跳,向左转,向右转和循环。这些动作中的每一个都是一个令牌,对应于它们在游戏中都是一个图块这一事实。 兔子可以面对四个正交方向(即北,南,东,西)。 兔子可以向前跳(在其面对的方向上移动一个正方形)并向左或向右转。 循环内部可能有任意数量的其他移动,包括其他循环,并且它们的迭代计数是任何正整数(尽管从技术上讲,游戏允许迭代计数为0)。 棋盘是一组网格对齐的正方形,并且兔子可以在相邻的正方形之间跳跃。 兔子无法跳入虚空。意味着企图跳板没有任何作用。(这显然使某些人感到惊讶,而另一些人则感到失望。) 正方形已标记或未标记。当兔子在正方形上时,它会被标记。 标记所有正方形后,该级别完成。 您可能会认为存在解决方案。 您的密码 目标:给定董事会,找到一个或多个最短的解决方案。 输入是构成木板的正方形位置的列表(区分标记的正方形和未标记的正方形),输出是移动的列表。输入和输出格式完全无关紧要,只要它们是人类可读和可理解的即可。 获胜标准:每块板在一分钟内找到的最短解决方案的移动总数。如果您的程序找不到任何特定板的解决方案,则该板的分数为(5 *平方数)。 请不要以任何方式对解决方案进行硬编码。您的代码应该能够将任何面板作为输入,而不仅仅是下面示例中给出的面板。 例子 解决方案隐藏在剧透中,使您有机会先玩游戏,然后自己尝试其中的一些。另外,下面仅针对每个提供一种解决方案。 S是兔子的起始正方形(朝东),#是未标记的正方形,并且O是标记的正方形。对于移动,我的表示法是F=向前跳,L=向左转,R=向右转,并LOOP(<num>){<moves>}表示一个循环,每次循环<num>执行<moves>。如果循环可以运行超过最小次数的任何次数,<num>则可以忽略(即无限工作)。 1级: S## FF 第2级: S## # # LOOP(2){FFR} 3级: S## # # ### 循环{FFR} 第4级: ### # # ##S## # # ### LOOP {F LOOP(7){FL}}(由DJMcMayhem找到) 5级: ##### # …

1
编写Kolmogorov复杂度求解器
该柯尔莫哥洛夫复杂的字符串的小号最短程序的长度P,写一些编程语言大号,其输出正好是小号。 (是的,真正的定义比较正式,但这足以应付挑战。) 你在这个挑战任务是写的最短的“柯尔莫哥洛夫复杂解算器”,就是写在程序大号,它接受一个字符串本身小号,并返回最短P写在大号输出小号。 天真的方法是遍历所有长度为1的程序,然后是所有长度为2的程序,然后是所有长度为3的程序,依次类推,依次运行每个程序并测量输出,直到找到输出S的程序。这种方法的问题在于其中某些程序可能永远不会停止运行,这意味着求解器本身可能永远也不会停止。而且由于停顿问题,没有确定方法可以避免程序无法停止。 一个简单但不完善的解决方案是对每个潜在P的执行时间设置时间限制。可能不会暂停的程序可能会被跳过,但是求解器肯定会停止(假设L中的程序确实可以输出在时限内 S)。 挑战 将您的求解器编写为包含三件事的程序或函数: 字符串 s ^。 正整数 T,它是时间限制(以秒为单位)或一些较小的时间跨度(例如毫秒)。 字符字母的字符串A用于潜在的P的。 并输出仅包含A中字符的最短P,以少于T个时间单位运行,并输出小号。 这是一般的伪代码: Function KolmogorovComplexitySolver(S, T, A): Assign N to 0 Loop until function returns: In any order, iterate over all strings of length N that only contain characters from *A*. Call the current string P: Execute …

5
用小于运算符表示所有16个布尔函数
对于两个二进制变量A和B,有16个不同的布尔函数: A B | F0 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15 ----------------------------------------------------------------------------------------- 0 0 | 0 | 0 | 0 | 0 | 0 | 0 …

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.