Questions tagged «brainfuck»

这个挑战与BF语言有关。请注意,通常不建议要求答案使用特定语言的挑战。

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 

4
缩小Brainfuck
根据以下规则,您面临的挑战是缩小Brainfuck代码: 删除不属于的任何内容+-><[].,。 对于任何一组连续的+或-字符,如果量+S和-s是相同的,将其删除。 执行与上述相同的操作,但使用>和<。 +-><如果不执行任何操作,请删除字符序列。例如,您应该删除+>-<->+<。(这可能是最棘手和最难实现的。)确保您没有得到任何误报,例如+>-<+>-<,不应删除。 测试用例: 输入项 ++++++[->++++++<]>. prints a $ [-]< resets tape >,[>,]<[.<] reverses NUL terminated input string ++-->><< does nothing 输出量 ++++++[->++++++<]>.[-],[>,]<[.<] 输入项 Should disappear: ++>>+<+++<->-->-<<->-< Should disappear: +++>-<--->+< Should stay: +++>-<+>---< 输出量 +++>-<+>---< 您可以根据需要接受输入和输出-stdin / stdout,函数等,但是输入可能未进行硬编码。 这是代码高尔夫球,因此字符计数中最短的代码将获胜。

3
原子比例游戏
您的任务是使机器人扮演得分最高的Atomas。 游戏的运作方式: 游戏板以6个“原子”的环开头,数字范围为1到3。您可以“玩”两个原子之间或另一个原子上的原子,具体取决于原子本身。 您可以有一个普通原子,也可以有一个特殊原子。 正常原子: 您可以在板上任意两个可用原子之间播放普通原子。 您从处于该范围内的原子开始1 to 3,但是该范围每40移动一次就增加1(因此,在40移动之后,范围变为2 to 4)。 如果板上的原子小于该范围,则有1 / no. of atoms of that number on the board可能产生。 假设您有一个2要玩的地方,董事会看起来像这样: 1 1 2 1 让我们将放在的2右侧1。 董事会现在变成: 1 1 2 1 2 注意:木板环绕,所以1最左侧的实际上2是最右侧的旁边。稍后将很重要。 有“特殊”原子的4种类型,它们是: 的+原子: 这个原子在两个原子之间起作用。它有五分之一的机会产卵。 如果原子两侧的+原子相同,则会发生聚变。运作方式如下: The two atoms fuse together to create an atom one higher. …
21 code-challenge  game  code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

14
这是一个截断的三角形数字吗?
相关OEIS序列:A008867 截断三角数 三角数的一个共同属性是它们可以排列成三角形。例如,取21并排列成os 的三角形: Ø OO oo oo oo oo 让我们定义一个“截断:”从每个角切割相同大小的三角形。截断21的一种方法如下: 。 。。 oo oo 。oo。 。。哦。。 (的三角形.是从原始三角形切出的)。 o剩下12 秒,因此12是一个截断的三角形数字。 任务 您的工作是编写一个程序或函数(或等效函数),该程序或函数采用整数并返回(或使用任何标准输出方法)数字是否为截断的三角形数字。 规则 没有标准漏洞。 输入是非负整数。 切口的边长不能超过原始三角形的一半(即,切口不能重叠) 切口的边长可以为零。 测试用例 真相: 0 1 3 6 7 10 12 15 18 19 虚假: 2 4 5 8 9 11 13 14 16 17 …
20 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 

1
Bootloader高尔夫:Brainf ***
创建一个执行给定Brainfuck程序的引导程序。这是code-golf,因此具有最少字节数的程序将获胜。作为引导加载程序,程序的大小在已编译的代码中以非零字节计。 脑干 30000个8位溢出单元。指针结束。 有关操作的一些注意事项: 必须以正确支持所有可打印ASCII字符的方式读取输入。其他击键可能会插入一个任意字符,或者什么也不做。 读取用户输入必须使用字符缓冲,而不是行缓冲。 读取用户输入必须回显插入的字符。 输出必须遵循代码页437或内置的VGA适配器默认代码页。 引导程序 这是一个x86引导程序。引导加载程序以传统55 AA顺序结束。您的代码必须在VirtualBox,Qemu或其他知名的x86模拟器上运行。 磁碟 可执行的Brainfuck位于第二个磁盘扇区,紧随您的引导加载程序之后,该引导加载程序通常位于MBR部分中的磁盘的第一个扇区中。附加代码(超过510字节的任何代码)可以位于其他磁盘扇区。您的存储设备必须是硬盘驱动器或软盘。 STDIO 当然,引导加载程序无法访问操作系统的IO功能。因此,BIOS功能代替了打印文本和读取用户输入的功能。 模板 首先,这是一个用Nasm(intel语法)程序集编写的简单模板: [BITS 16] [ORG 0x7c00] ; first sector: boot: ; initialize segment registers xor ax, ax mov ds, ax mov es, ax mov ss, ax ; initialize stack mov sp, 0x7bfe ; load brainfuck …

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 …

3
Brainf * ck循环问题
我遇到一个网络俱乐部的问题,要求您打印: ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 使用不超过29个字节的Brainf ** k,而不使用','字符。 我有一个工作代码: ++++++++++[>++++++>+++++++++<<-]>-->.<[>-.<-] 但是我的循环太长,超出限制发送了16个字节。 有没有更有效的方法将第二个和第三个单元格设置为58和90,以便我可以运行第二个循环?还是有一个更好的方法可以一起完成所有这些,而我只是没有看到?

2
具有独特输出的Brainf ***子程序
您应该编写一个100字节长的Brainfuck(BF)程序。 将以各种可能的方式从其中删除一个字符,从而得到100个新程序(长99字节)。例如,对于该计划++.>.的5个子程序是+.>.,+.>.,++>.,++..和++.>。 您的分数将是100个程序生成的唯一输出的数量。分数越高越好。 细节 输出第一个字符后,程序将终止。 无效或不终止的程序以及生成空输出的程序不计入分数。 BF单元是8位换行的。(255 + 1 = 0,0-1 = 255) 您的程序没有输入。如果,在代码中使用它,则将当前单元格设置为0。 起始位置左侧没有任何单元格。例如<.无效,但.<由于执行在处终止而有效.。磁带在另一个方向上是无界的。 方括号([和])不平衡的程序无效。 您的原始程序可以少于100个字节,因为很容易将其扩展为100个字节而无需更改分数。 您的原始程序不必是有效的BF代码。 您可以使用此python3程序(ideone链接)来确定答案的分数。(对于长时间运行的程序,您可能需要修改maxstep变量。) 例 (为简单起见,此程序短于100个字节。) Solution: ++,+[-]+><.-,-. Score: 3 Explanation: Subprogram => Output +,+[-]+><.-,-. => 1 +,+[-]+><.-,-. => 1 +++[-]+><.-,-. => 1 ++,[-]+><.-,-. => 1 ++,+-]+><.-,-. => None ++,+[]+><.-,-. => None ++,+[-+><.-,-. => None …

28
bfcat-将文件编码为Brainf ***程序
挑战 编写一个给定字符串的程序或函数,返回一个有效的Brainfuck程序,该程序在作为Brainfuck编译并执行后将返回该字符串。 假设所有输入均编码为ASCII。 假设输出的BF程序将在具有无限磁带的环境中执行。 假定指针从单元格0开始,每个单元格都初始化为零值。 下面的每个示例代表给定输入的一种可能的正确输出。尤其是,这些示例包括额外的换行符和空格,以帮助人类阅读。解决方案可以自由地以任何方式格式化输出的BF代码。 磁带是双重无限的。 解释器提供的所有单元都是8位单元。上溢和下溢围绕着可预测且理智的问题。 例子 空格串 给定输入,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ ++ . 感叹号 给定输入!,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ +++ . 两个字母 给定输入hi,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ …

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

4
将Fractran转换为Brainfuck
背景 Fractran是John Conway发明的深奥的图灵完备的编程语言。Fractran程序由分数的有序列表组成。该程序以一个整数作为输入开始。程序的每次迭代,都会在列表中搜索第一个分数,以便将该数字乘以该分数会生成另一个整数。然后从列表的开头开始,用新的编号重复此过程。当列表中没有可以与数字相乘的分数时,程序将终止并给出数字作为输出。 Fractran具有图灵完备性的原因是因为它模拟了套准机。数字的素数分解存储了寄存器的内容,而除法和乘法是有条件地从寄存器中进行加减的一种方法。我建议阅读Wikipedia文章(链接到上面)。 挑战 您的任务是编写尽可能最短的程序,该程序可以将来自STDIN的有效Fractran程序作为其唯一输入,并向模拟Fractran程序的STDOUT生成有效的BF程序。使用BF模拟Fractran程序的方式有两种。 注意:您的答案不是BF程序。您的答案是从任何给定的Fractran程序生成BF程序的代码。目的是使BF程序与Fractran程序等效。(从技术上讲,您可以参加高炉比赛,但这很难) 选项1 您的程序应输出执行以下操作的BF程序: 从STDIN中以相应的ASCII字符的形式获取正好1个数字(由于BF输入的工作方式),这是Fractran程序的输入。 以相应的ASCII字符的形式将精确的1数字打印到STDOUT,这是Fractran程序的输出。 此选项旨在表示Fractran虚拟机的确切输入和输出。 选项2 程序生成的BF代码应执行以下操作: 通过对已经编码在内存中的数字进行质因子分解来进行输入(在运行程序之前)。如果输入为28(2 * 2 * 7),则第二个单元格中的值为2,第七个单元格中的值为1(指针从单元格0开始)。所有其他单元将为零。 程序终止时,通过将输出的质数分解编码在内存中来给出输出。如果输出为10,则像元2和5中的每个像元都必须为1。所有其他素数像元必须为零。其他单元格的内容无关紧要。 此选项表示Fractran语言背后的计算模型。 规则与要求 输入(程序顶部)将是STDIN上的分数列表。每行将有一个小数,在分子和分母之间带有逗号。空行表示输入的结尾。分数将始终减少到最低的条件。 程序的输出应该是单行有效的BF程序,输出到STDOUT。该程序应该能够根据两个选项之一模拟该特定的Fractran程序。对于任何输入,生成的BF程序应能够产生与Fractran程序相同的输出。 您必须说明选择的选项。 您可以选择BF存储器和磁带上的边界以及它们是否在包装 代码高尔夫。同样,输出的BF程序的大小无关紧要,仅执行转换的程序的大小无关紧要。 程序只能由可打印的ASCII组成 如果我在任何地方都模棱两可,请不要犹豫。这是一个非常复杂的挑战,难以描述。 另外,请为以下输入发布程序生成的BF代码,以提供一种简便的方法来检查程序是否正常运行: 33,20 5,11 13,10 1,5 2,3 10,7 7,2 此程序在数字的二进制扩展中计算1的数量。但是,输入和输出的格式很奇怪(与所有Fractran程序一样)。输入的形式为2 ^ A,而输出的形式为13 ^ B。

1
二维编程
这个世界碰巧只有一个时间维度,这是一个有趣的意外,但不一定非要如此。很难想象具有2个或更多时间维度的世界,在这些世界中,您可以构建计算机并在其上运行软件,就像在这个世界中一样。 系统 这是一个用于在两个时间维度上运行Brainf * ck程序的系统: 两个时间维度是x和y。每个Brainf * ck程序都包含一个x半程序和一个ay半程序,例如,一个程序可以是 x: +>+ y: [-] 两个半程序都有各自的程序指针,但是它们共享一个磁带指针(即,它们都在磁带的同一单元上操作)。 时间是二维的,因此它由时刻网格组成: 沿x维度移动,x半程序执行一个时间步。沿y维移动,y半程序执行一个时间步。 因此,例如,假设磁带以[0] 0 0([]表示磁带指针)开始,而x / y程序为+和->-。该程序的执行如下所示: x y tape x-action y-action 0 0 [ 0] 0 0 + at 0 - at 0 1 0 [ 1] 0 0 (done) - at 0 0 1 [-1] …

13
逆排列索引
介绍 具有n个元素的列表的字典排列可以从0到n编号!-1.例如3!= 6个置换(1,2,3)将是(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)。 将排列应用于列表时,其元素的排列顺序与排列中的数字相同。例如,将置换(2,3,1)应用于l = (a,b,c)yield (l[2],l[3],l[1]) = (b,c,a)。 排列的逆定义为颠倒此操作的排列,即应用排列,然后其逆(反之亦然)不会修改数组。例如,(2,3,1)is 的逆(3,1,2),因为将其应用于(b,c,a)yields (a,b,c)。 同样,应用于排列本身的排列的逆值会产生整数1… n。例如,应用(3,1,2)到(2,3,1)产率(1,2,3)。 现在,我们将函数revind(x)定义为索引为x的排列的逆排列的索引。(如果您有兴趣,这是A056019。) 由于与指数置换我只修改了最后ķ列表中的项目当且仅当 0≤ 我 < ķ!,我们可以添加任意数量的元素到列表的开始,而不会影响revind(我)。因此,列表的长度不影响结果。 挑战 您的任务是实现revind(x)。您将编写一个完整的程序或函数,以单个非负整数x作为输入/参数,并以单个非负整数输出/返回结果。 输入和输出可以是0索引或1索引,但是它们之间必须保持一致。 禁止按索引生成排列,返回排列的索引或找到逆排列的内建函数。(允许生成所有排列或下一个排列的构建体。) 适用标准代码高尔夫球规则。 例子 下面的示例是0索引的。 Input Output 0 0 1 1 2 2 3 4 4 3 5 5 6 6 13 10 42 51 100 41 1000 …
17 code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

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 

19
验证Brainfuck程序
Brainfuck的另一个解析问题,但是这次……有所不同。 您正在开发Brainfuck程序的公司Infinite Monkeys Incorporated中工作,以解决各种有趣的问题(偶然地,至少是偶然,毕竟该公司创建了随机程序)。但是,看来仅执行Brainfuck的快速图灵机存在语法错误的小而昂贵的问题-生成一个,计算机便爆炸了。这可能是设计缺陷,但没有人费心去寻找它为什么会发生。 由于Turing机器(尤其是快速的机器)非常昂贵(毕竟它们具有无限的RAM成本),因此最好在执行代码之前确保程序没有任何语法错误。您的公司将要运行大量代码,因此手动验证将不起作用。编写一个程序,该程序读取用于Brainfuck的STDIN代码,如果程序有任何语法错误(例如],由于没有匹配,则是语法错误),则退出状态将退出状态设置为0(错误)以外的任何值[。如果程序完全正常,则以退出状态设置为0退出。 确保您的程序正确注意到涉及的错误[]。您不希望其他计算机爆炸,对吗?哦,请确保它尽可能的短-您的老板为简短的程序付费(因为他认为这些程序很快,还是有些东西)。哦,您不必在Brainfuck中编码(实际上,您不能,因为Brainfuck不支持退出代码),您的代码将在普通计算机上运行。 因此,正如您所看到的,您的工作是检查Brainfuck程序是否“有效”(具有成对的[]符号)。请注意,Brainfuck程序可以使用以外的其他字符[],因此请勿仅因为它具有其他命令而拒绝该程序。最小的代码获胜,但无论如何,您可能会更在乎投票。

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.