Questions tagged «busy-beaver»

繁忙的海狸在必须停止的约束下,最大化了计算模型的某些属性(例如执行时间,内存使用量,输出长度)。

17
建立一个编译炸弹
介绍 您可能熟悉zip炸弹,XML炸弹等。简单来说,它们是(相对)小文件,当用纯软件解释时,它们会产生巨大的输出。这里的挑战是以同样的方式滥用编译器。 挑战 编写一些占用512个字节或更少字节的源代码,并将其编译成一个占用最大可能空间的文件。最大的输出文件胜出! 规则 好的,因此有一些重要的说明,定义和限制。 编译的输出必须是ELF文件,Windows Portable可执行文件(.exe)或JVM或.Net的CLR的虚拟字节码(如果需要,其他类型的虚拟字节码也可能没问题)。更新:Python的.pyc / .pyo输出也算在内。 如果不能将您的选择语言直接编译为这些格式之一,则也可以先进行编译再进行编译(更新:只要您从未使用同一语言多次,就可以多次进行编译)。 您的源代码可以包含多个文件,甚至可以包含资源文件,但是所有这些文件的总大小不能超过512个字节。 除了源文件和选择语言的标准库之外,您不能使用任何其他输入。如果支持静态链接标准库,则可以。具体来说,没有第三方库或OS库。 必须可以使用一个或多个命令来调用您的编译。如果在编译时需要特定的标志,则这些标志将计入您的字节数限制(例如,如果您的编译行是gcc bomb.c -o bomb -O3 -lm,则将计算-O3 -lm部分(7字节))(请注意,不计入初始前导空间)。 仅当预处理器是您语言的标准编译选项时,才允许使用预处理器。 环境取决于您,但是为了使此可验证性感兴趣,请坚持使用最新的(即可用的)编译器版本和操作系统(并明确指定要使用的版本)。 它必须编译时没有错误(警告是可以的),并且崩溃会使编译器不起作用。 您的程序实际执行的操作无关紧要,尽管它不可​​能是恶意的。它甚至不必启动。 例子1 C程序 main(){return 1;} Apple LLVM version 7.0.2 (clang-700.1.81)在OS X 10.11(64位)上编译: clang bomb.c -o bomb -pg 产生一个9228字节的文件。源的总大小为17 + 3(对于-pg)= 20字节,这很容易在大小限制内。 例子2 Brainfuck程序: ++++++[->++++++++++++<]>.----[--<+++>]<-.+++++++..+++.[--->+<]>-----.-- -[-<+++>]<.---[--->++++<]>-.+++.------.--------.-[---<+>]<.[--->+<]>-. 用awib转换为c: ./awib ...

30
可打印的最大数量
您的目标是编写一个打印数字的程序。数字越大,您将获得的积分越多。不过要小心!在评分功能中,代码长度既受限制,又受权重。您的打印数量将除以用于解决方案的字节数的立方。 因此,假设您打印10000000并且代码为100字节长。您的最终成绩将是10000000 / 100^3 = 10。 为了使这一挑战更加困难,还有其他规则要遵循。 您不能在代码中使用数字(0123456789); 您可以使用数学/物理/等。常量,但只有当他们都小于10(例如,你可以使用丕〜= 3.14,但你不能使用阿伏伽德罗常数 = 6e23) 允许递归,但是生成的数字必须是有限的(因此不接受无限数作为解决方案。您的程序需要正确地终止(假设无限制的时间和内存,并生成请求的输出)); 您不能使用运算*(乘),/(除),^(幂)或任何其他方式来表示它们(例如2 div 2,不允许); 如果需要,您的程序可以输出多个数字。只有最高的一个才算得分; 但是,您可以串联字符串:这意味着任何相邻数字序列都将被视为一个数字; 您的代码将按原样运行。这意味着最终用户不能编辑任何代码行,也不能输入数字或其他任何内容。 最大代码长度为100个字节。 排行榜 史蒂芬H.,Pyth ≈˚F φ(1,0,0)7(256 26)/ 1000000 [1] 简单地美丽的艺术,红宝石 ≈˚F φ 121(ω)(126) [1] 彼得·泰勒,GolfScript ≈˚F ε 0 +ω+ 1(17)/ 1000 [1] 水库,GolfScript ≈˚F ε 0(F ε 0(F ε 0(F ε 0(F ...

30
如果程序终止并且没有人看到它,它会停止吗?
现在是时候面对现实了:我们不会永远在这里,但是至少我们可以编写一个程序,即使人类奋斗到最后,它也将比人类长寿。 您的任务是编写一个程序,该程序的预期运行时间大于到Universe结束之前的剩余时间。 您可以假设: 宇宙将在10 1000年后死于熵。 你的电脑: 因为它是由Unobtainium制成的,所以它将比宇宙持久。 具有无限的内存/堆栈/递归限制。 它的处理器速度有限。 您必须证明程序已终止(对不起,没有无限循环)并计算其预期运行时间。 该标准的漏洞适用。 这是一场高尔夫挑战赛的代码,因此符合条件的最短代码将获胜。 编辑: 不幸的是,发现(30分钟后)Unobtainium的不可能范围字段干扰了计算机的内部时钟,使其无法使用。因此,基于时间的程序立即停止。(无论如何,谁会留下一个程序等待其生存的遗产?)。 该计算机处理器与Intel i7-4578U相似,因此一种测量运行时间的方法是在输入较小的类似计算机上运行程序(我希望如此)并推断其运行时间。 讲台 #CharsLanguageUpvotes Author 1 5 CJam 20 Dennis 2 5 J 5 algorithmshark 3 7 GolfScript 30 Peter Taylor 4 9 Python 39 xnor 5 10 Matlab 5 SchighSchagh *于31/08投票

11
建造降价炸弹[关闭]
我敢肯定,我们大多数人都听说过拉链炸弹和类似的减压炸弹把戏,其中恶意制作的输入会产生大量不成比例的输出。我们甚至在这里有一个问题,想在某一时刻对编译器执行此操作。 好吧,我觉得Markdown是一种压缩格式,用“压缩的” MD令牌代替了笨重的HTML标签。因此,有可能在Markdown建造一个压缩炸弹吗? 挑战规则: 提交内容应该是一段降价文字,长度在50到256个字符之间。(强加了一个最小值,以阻止一些智能警报发布3个字符的响应或类似内容。) 该提交将由StackExchange的Markdown处理器(在此站点中实现)进行处理。 您的分数将是结果HTML中的字符数与Markdown文本的字符数之比。 最高分获胜。

30
十个字节的代码中最大的数字
您的目标是仅使用十个字符的代码即可打印(至标准输出)最大数量的打印机。 您可以使用语言的任何功能,但内置指数功能除外。 同样,您可能无法使用科学计数法输入数字。(因此,没有9e+99。) 程序必须在没有用户输入的情况下打印号码。同样,也不会读取其他文件或Web等信息。 您的程序必须计算一个数字并打印出来。您不能打印字符串,也不能打印相同的数字数千次。 您可以从10个字符的限制中排除打印任何内容所需的任何代码。例如,在使用该print x语法的Python 2中,您的程序最多可以使用16个字符。 该程序实际上必须在输出中成功。如果在世界上最快的计算机上运行需要一个多小时,则它无效。 输出可以是任何格式(这样你就可以打印999,5e+100等等) 无限是一个抽象概念,而不是数字。因此这不是有效的输出。

6
打高尔夫球的数目大于树的数目(3)
函数TREE(k)给出树的最长序列T 1,T 2,... 的长度,其中每个顶点都用k种颜色之一标记,树T i最多具有i个顶点,没有树是a 序列中紧随其后的任何树的未成年人。 TREE(1)= 1,例如T 1 = (1)。 TREE(2)= 3:例如T 1 = (1); T 2 = (2)--(2);T 3=(2)。 TREE(3)很大。甚至比格雷厄姆的数字还要大。您的工作是输出一个甚至更大的数字! 这是一个代码问题,因此目标是用确定性输出大于或等于TREE(3)的任何语言(向标准输出)编写最短的程序。 您不允许输入。 您的程序最终必须终止,但是您可以假定计算机具有无限的内存。 您可能会假设您的语言的数字类型可以包含任何有限值,但是需要解释一下它在您的语言中的确切工作方式(例如:浮点数具有无限精度吗?) 不允许将无穷大作为输出。 数字类型的下溢引发异常。它不会环绕。 由于树(3)是一个复杂的号码,你可以使用快速增长的层次逼近˚F θ(Ω ω ω)+1(3)作为数字击败。 您需要提供一个解释,说明为什么您的人数如此之大以及代码的版本是否过高,以检查您的解决方案是否有效(因为没有计算机具有足够的内存来存储TREE(3)) 注意:此处当前找不到答案。 为什么TREE(3)这么大?

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

9
做一个缓慢的错误奎因制造商!
作为他对“犯错误的原因” 的回答的一部分!,@ Falko提出了以下算法: 如何在2分钟内创建自己的解决方案? 在您选择的IDE中打开一个新文件。 将头撞到前方的键盘上。 编译。 将代码替换为编译器错误消息。 重复步骤3和4,直到代码收敛。 我敢打赌,这样的程序在大多数情况下会很快终止! 任务 您的任务是证明他错了。 编写一个满足以下条件的完整程序: 在编译或解释时,它会生成一条错误消息,而在依次编​​译或解释时,它也会导致一条错误消息。 一遍又一遍地重复步骤1,最终将遇到一个固定点,即一个错误提示。 附加规则 最终错误消息的长度必须为正。但是,以前的错误消息和原始的源代码可能为空。 原始源代码的长度不得超过1024个字节。 原始代码或任何步骤中生成的代码均不会产生非错误输出。 输出必须清楚地标识为错误消息,由于语法错误,运行时错误,未定义引用等原因,必须由编译器/解释器生成输出。 您的程序可能未收到任何输入或需要任何标志来产生循环。 您的程序可能依赖于其语言或版本的特定实现。 计分 您的分数是您的源代码在生成错误提示之前需要执行的有限步骤。得分最高的提交者获胜。 原始源代码的长度将用作平局决胜局。越短越好。 例 在Chicken中,该程序 生成以下错误消息: TypeError: Cannot read property 'NaN' of undefined 如果反过来解释此错误消息,则会生成错误消息 Error on line 1: expected 'chicken' 如果反过来解释,它就会产生自己。 因此,空Chicken程序的得分为2。 反例 PHP代码 ab<?=c 生成错误消息 PHP Parse ...

8
输出大小超过Graham数的最短终止程序
编写满足以下要求的最短程序(长度以字节为单位): 没有输入 输出到标准输出 执行最终终止 输出字节总数超过Graham的数量 假设程序运行到能够访问无限资源的理想计算机1上的“正常”终止,并且在必要时修改了通用编程语言(无需更改语法)以允许这样做。基于这些假设,我们可以称其为Gedanken实验。 首先,这是一个73字节的Ruby程序,该程序在快速增长的层次结构中计算fω+ 1(99): f=proc{|k,n|k>0?n.times{n=f[k-1,n]}:n+=1;n};n=99;n.times{n=f[n,n]};puts n 1编辑:更准确地说,假设我们采用现有系统并对其进行修改,以使其对存储大小没有上限(但始终是有限的)。在指令的执行,时间不应该被修改,但该机被认为是因为它会对它的工作寿命没有上限理想。

13
创建增长最快的函数(不到100个字节)
您的工作是创建增长最快的函数,最多不超过100个字节。 您的程序将以非负整数作为输入,并输出非负整数。让我们将程序称为P。 它必须满足以下两个条件: 其源代码必须小于或等于100个字节。 对于每个K,都有一个N,使得对于每个n> = N,P(n)>K。换句话说,lim (n->∞) P(n)=∞。(这就是“增长”的意思。) 您的“分数”是程序的基础功能的增长率。 更具体地,如果对于所有n> = N,存在一个N,使得P(n)<= Q(n),并且至少一个n> = N,使得P(n )<Q(n)。如果两个程序都不比另一个程序好,那就将它们捆绑在一起。(基本上,哪个程序较慢是基于lim (n->∞) P(n)-Q(n)的值。) 根据上一段中的定义,最慢的增长函数被定义为比其他任何函数增长慢的函数。 这是增长率的目标,因此增长最快的程序将获胜! 笔记: 为了帮助评分,请尝试将程序计算的功能放在答案中。 还放置一些(理论上的)输入和输出,以帮助人们了解您可以走多慢。

8
与可打印ASCII有关的多产的完美Pangram程序
更新:取消了时间限制。您必须能够描述输出-请参阅新规则。 一个全字母短句是使用字母表中的每个字母至少一次,如句子: 敏捷的棕色狐狸跳过了懒狗。 一个完美的全字母短句使用每个字母一次。 考虑使用95个可打印的ASCII字符(十六进制代码20至7E)作为字母编写完美的pangram程序: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 这样的程序必须完全包含95个字符,每个可打印的ASCII字符仅出现一次,但顺序不限。(因此有95!= 1.03×10 148个可能性。) 您的任务是编写此程序,以使打印到stdout的可打印ASCII字符数尽可能多(即,多产)。 您的分数是程序输出的可打印ASCII字符数(总数,而不是不同的数字:AABC分数4,而ABC分数3)。最高分获胜。 细节 输出可能包含任何字符(包括重复字符),但只有95个可打印ASCII字符的实例才计入您的分数。 您可以使用此JSFiddle来计算任何字符串中可打印ASCII字符的数量。 如果您的语言没有标准输出,请使用最合适的替代方法。 您的程序... 必须具有有限的运行时(时间限制已删除) 必须具有有限的输出 可能包含评论 必须编译并运行时没有(未捕获)错误 不得提示或要求输入 必须是时间不变的和确定性的 不得使用外部库 一定不需要网络连接 不得使用外部文件 (您可以使用程序文件本身,只要更改文件名不会改变程序的行为) 如果这项任务不可能完成,那是某种糟糕的语言。 如果输出太大而不能容纳在帖子中,则必须给出准确的输出或准确地描述它。您实际上不必运行程序。只要将在有限的时间量在计算机上运行的内存无界量它是有效的。 例 这个简单的Python 2程序是可能的解决方案: print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~ 它输出9876543210包含10个可打印ASCII字符,因此得分为10。

13
进行长型签名
挑战 查找最长具有100个字节且类型签名最长的表达式。 规则 允许任何具有类型推断的静态类型语言 该类型必须是无歧义的,但否则可能包括没有定义实例的类型。例如Num [a]和Eq [a]是允许的,即使没有定义的实例 除了使用STDIN / STDOUT编译程序所需的最低要求外,没有其他导入 不允许无限类型 如果一个答案有多个表达,则只有一个可以参与评分。例如,尽管composition的类型签名为(.) :: (b -> c) -> (a -> b) -> a -> c,得分为20,但包含25个副本的答案(.)\n的得分为20,而不是500 表达式最多为100个字节 分数是类型签名中的字符数,不包括函数名称和任何空格。例如,f :: (a -> b) -> a -> b得分为12 最高分获胜! 例子 尽管允许使用其他语言,但是以下示例位于Haskell中: Score: 112 map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map.map f :: (a -> b) -> [[[[[[[[[[[[[[[[[[[[[[[[[a]]]]]]]]]]]]]]]]]]]]]]]]] -> [[[[[[[[[[[[[[[[[[[[[[[[[b]]]]]]]]]]]]]]]]]]]]]]]]] Score: ...

24
ogl-edocf挑战
输入项 一个非空的字符串,由范围内的ASCII字符组成。[ 32..126 ][32..126][32..126] 输出量 通过对输入字符串进行连续旋转来获得输出。 对于[a-zA-Z]输入字符串中的每个字母(),从左到右: 如果字母是大写字母,请将其前面的所有字符向左旋转一个位置 如果字母是小写字母,请将其前面的所有字符向右旋转一个位置 例 输入:“ Cb-Ad” 第一个字母是“ C ”。我们应该向左旋转,但是这个“ C ” 之前没有字符。因此,没有任何旋转。 下一个字母是“ b ”。我们向右旋转“ C ”。因为它是单个字符,所以它保持不变。 字符“ - ”不会触发任何旋转,因为它不是字母。 下一个字母是“ A ”。我们轮流“ CB- ”到左边,这给“ 公元前广告” 第四个也是最后一个字母是“ d ”。我们向右旋转“ b-CA ”,即为“ Ab-C d” 因此,预期输出为“ Ab-Cd ”。 规则 您可以将输入作为字符串或字符数组进行输入-根据您的语言,输入内容可能相同也可能不同。 您也可以输出字符数组而不是字符串。 这是ogl-edocf 代码高尔夫 测试用例 "cbad" -> ...
22 code-golf  string  code-golf  string  code-golf  string  parsing  brainfuck  code-challenge  python  hello-world  error-message  code-golf  string  code-golf  number  integer  counting  subsequence  code-golf  string  cipher  code-golf  array-manipulation  arithmetic  integer  matrix  code-golf  math  sequence  code-golf  restricted-source  pi  popularity-contest  cops-and-robbers  polyglot  popularity-contest  cops-and-robbers  polyglot  code-golf  file-system  king-of-the-hill  code-golf  number  sequence  integer  rational-numbers  string  code-challenge  source-layout  code-golf  ascii-art  king-of-the-hill  code-golf  array-manipulation  sorting  code-golf  string  code-golf  restricted-source  source-layout  tips  math  code-challenge  permutations  logic-gates  code-golf  number  random  integer  code-golf  math  code-golf  math  number  decision-problem  king-of-the-hill  python  board-game  code-challenge  brainfuck  busy-beaver  code-golf  number  cops-and-robbers  polyglot  obfuscation  answer-chaining  code-golf  number  integer  conversion  code-golf  string  parsing  code-golf  ascii-art  number  king-of-the-hill  javascript  code-golf  source-layout  radiation-hardening  code-golf  array-manipulation  matrix  code-golf  string  graph-theory  code-golf  array-manipulation  decision-problem  code-golf  string  ascii-art  code-golf  string  code-golf  array-manipulation 

1
无痕忙碌的海狸
所有那些繁忙的海狸都弄得一团糟。他们在磁带上写满了。以这种速度,我们的邻居将停止向我们提供无限制的磁带。 我们需要一种新的方式来玩忙碌的海狸游戏,这种方式不会破坏我们使用的所有磁带。 规则 只需动脑子。内存磁带无界。输入指令将始终读取,因此可用于清除值。000 50个字节的源限制。 执行结束时,内存必须全为 s。000 分数是内存指针的起始位置和最终位置之间的距离-如果在它们之间需要移动指令,则分数为n。越高越好。如果可以,请提供准确的值,否则请提供估计值。nnnnnn 例 32个字节,2255−12255−12^{255}-1 -[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>] 说明 - Initialize the list to [255]. [ ] Repeat as long as the list is not empty. [- ] Decrement the left end. We need to shrink the numbers so it ends eventually. [ [ ] ] Skip ...

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu ...

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.