Questions tagged «brainfuck»

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

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 

3
制作更长的语言节目
Lenguage是一种令人难以置信的方言,以打破源限制挑战而臭名昭著。这是因为Lenguage只关心源的长度,而不关心内容的长度。 首先,计算程序的长度。然后,将所述长度转换为二进制,并用零左填充为3的倍数。所得的二进制字符串被拆分为3位的块,每个块都被转换为Brainfuck命令,如下所示: 000 -> + 001 -> - 010 -> > 011 -> < 100 -> . 101 -> , 110 -> [ 111 -> ] 最终,该程序作为Brainfuck 1运行。 从这里开始,挑战非常简单,编写一个不带任何输入并产生一个输出的字节程序,该输出由一个字节重复ññn次组成,其中ññn严格大于程序的长度。 答案将以字节计分,而字节数越少越好。 这是一个可以通过脑操计算语言的hacky程序 1:对于此挑战,我们将使用包裹单元和非包裹胶带。

2
将RoboCritters转换为Brainf ***
RoboCritters(词源学)是一种崭新的深奥编程语言(不必费心去寻找它,我只是发明了它)。它是是Brainfuck(BF)变体,比通常的运算符替换方案稍微复杂一些。RoboCritters中的每个程序都是一个矩形的文本网格,该文本网格仅包含七个字符. []/\|以及用于换行的换行符。 示例RoboCritters程序: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ 要将RoboCritters程序转换为BF,请按正常阅读顺序(从左到右,然后从上到下)查看网格中的每个非换行符|\/||./|[]||[..][][] ||/\|[..][..][..] \/\/。 如果从当前角色向右和向下延伸的网格的4×2部分与下面列出的八个机器人生物之一完全匹配,请附加相应的BF命令(><+-.,[])到(最初为空)BF程序。 如果4×2网格部分与任何机器人生物都不匹配或超出范围,则不向BF程序添加任何内容。 Joybot,>命令: [..] \][/ Calmbot,<命令: [..] /][\ Squidbot,+命令: [..] //\\ Spiderbot, -命令: [..] |||| Bunnybot,.命令: [][] [..] Toothbot,,命令: [..] |/\| Foxbot,[命令: |\/| [..] Batbot,]命令: [..] \/\/ 因此,请阅读示例程序 |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ 我们可以看到我们首先遇到了Foxbot(在第1列第1行),然后是Toothbot(c1,r2),然后是Bunnybot(c5,r2),最后是Batbot(c9,r3)。这对应于BF程序[,.]。 请注意Foxbot和Toothbot重叠。这是故意的;重叠的机器人生物没有任何不同的解释。 挑战 编写最短的程序,该程序可以接收RoboCritters程序并输出等效的BF。您无需运行BF或检查其是否有效,只需将RoboCritters代码转换为BF代码即可。 …

9
Brainf ** k一元及后退
在受限来源和其他此类挑战中非常有用的语言是 一元,其中程序与只有一个字符写在一个brainfuck衍生物。您的工作是编写一个程序,将程序从Brainfuck转换为一元,并编写一个相反的程序,两个程序都使用相同的语言。您的分数将是两个程序的长度之和。 您如何从Brainfuck转换为一元? 首先根据此表将您的Brainfuck代码转换为二进制代码: 现在按代码顺序将代码连接成一个巨大的二进制数。 前置一个 1字符串,以确保一个唯一的二进制数。 使用任何字符将二进制数转换为一元数。 例如:+.将为000000000000000000000000000000000000000000000000000000000000000000000000000000000000(84个零)。 Brainfuck->一元规格 由于生成的程序不可能太大,因此,请不要打印实际的程序,而仅打印生成的程序的长度。 通过stdin,arg函数等将Brainfuck程序作为字符串,并输出长度。 该程序将始终有效,并且其中仅包含这8个字符。 一元-> Brainfuck规格 您将必须实现与上述算法相反的方法。 再次由于存在巨大的问题,输入将是一个描述Unary代码长度的数字。 一如既往的I / O规则。 该程序将始终有效,并且其中仅包含这8个字符。 测试用例 你好世界- ++++++[>++++++++++++<-]>.>++++++++++[>++++++++++<-]>+.+++++++..+++.>++++[>+++++++++++<-]>.<+++[>----<-]>.<<<<<+++[>+++++<-]>.>>.+++.------.--------.>>+.=239234107117088762456728667968602154633390994619022073954825877681363348343524058579165785448174718768772358485472231582844556848101441556 斐波那契- ++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++>++++++++++++++++>>+<<[>>>>++++++++++<<[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]>[<+>-]>[-]>>>++++++++++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<[++++++++++++++++++++++++++++++++++++++++++++++++.[-]]<<<++++++++++++++++++++++++++++++++++++++++++++++++.[-]<<<<<<<.>.>>[>>+<<-]>[>+<<+>-]>[<+>-]<<<-]<<++...=13067995222095367150854793937817629722033205198624522624687536186118993888926522550140580142585590431635487113180955099384652678100247403485397450658564826143160529351955621991895221530908461364045400531236124980271740502887704217664044858614821622360156740992393765239123681327824577149595724956207165558106099868913919959549896553103116795519592552089266360725543244154867904980260 这是代码高尔夫球,因此最低得分(以字节为单位)将获胜! 有人在Unary寻找解决方案吗?; P

5
BrainF中最快的排序***
在已经实施的BrainF ***快速排序,我意识到这可能不是那么快。在BF中,普通语言中的O(1)操作(如数组索引)要长得多。当您在图灵tarpit中进行编码时,构成有效排序的大多数规则都可以扔掉。 因此,实现“有史以来最快的BrainF ***排序例程”是一项挑战。我将使用下面的解释器为所有条目计时。解释器使用带未签名字符的16K磁带。超出限制时,磁带和单元都将缠绕。读取EOF会将0放入当前单元格。测量的时间包括解析源文件的时间和处理所有输入文件的时间。最快的代码胜出。 测试向量将是一组用于测试排序边缘情况的Ascii文件,包括 已经排序的列表:“已排序” !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 反向排序列表:“反向” ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 由多个唯一值的许多副本组成的文件:“ onlynine” ibbkninbkrauickabcufrfckbfikfbbakninfaafafbikuccbariauaibiraacbfkfnbbibknkbfankbbunfruarrnrrrbrniaanfbruiicbuiniakuuiubbknanncbuanbcbcfifuiffbcbckikkfcufkkbbakankffikkkbnfnbncbacbfnaauurfrncuckkrfnufkribnfbcfbkbcrkriukncfrcnuirccbbcuaaifiannarcrnfrbarbiuk 完全随机的ascii文件:“随机” 'fQ`0R0gssT)70O>tP[2{9' 0.HMyTjW7-!SyJQ3]gsccR'UDrnOEK~ca 'KnqrgA3i4dRR8g.'JbjR;D67sVOPllHe,&VG"HDY_'Wi"ra?n.5nWrQ6Mac;&}~T_AepeUk{:Fwl%0`FI8#h]J/Cty-;qluRwk|S U$^|mI|D0\^- csLp~`VM;cPgIT\m\(jOdRQu#a,aGI?TeyY^*"][E-/S"KdWEQ,P<)$:e[_.`V0:fpI zL"GMhao$C4?*x 1..255范围内的随机文件:“全范围” öè—@œ™S±ü¼ÓuǯŠf΀n‚ZÊ,ˆÖÄCítÚDý^öhfF†¬I÷xxÖ÷GààuÈ©ÈÑdàu.y×€ôã…ìcÑ–:*‰˜IP¥©9Ä¢¬]Š\3*\®ªZP!YFõ®ÊÖžáîÓ¹PŸ—wNì/S=Ìœ'g°Ì²¬½ÕQ¹ÀpbWÓ³ »y »ïløó„9k–ƒ~ÕfnšÂt|Srvì^%ÛÀâû¯WWDs‰sç2e£+PÆ@½ã”^$f˜¦Kí•òâ¨÷ žøÇÖ¼$NƒRMÉE‹G´QO¨©l¬k¦Ó 每个输入文件最多具有255个字节。 这是口译员。它是为控制台模式Windows编写的,但应该易于移植:只需替换read_time()并sysTime_to_ms()使用特定于平台的等效项即可。 用法: bftime program.bf infile1 [infile2 ...] #include <windows.h> #include <stdio.h> #define MS_PER_SEC 1000.0f #define MAXSIZE (0x4000) #define MAXMASK (MAXSIZE-1) typedef __int64 sysTime_t; typedef unsigned …

27
RLE Brainfuck方言
RLE Brainfuck (与BF-RLE有关) 假设的Brainfuck RLE(游程长度编码)方言接受8个命令的符号,并且还接受数字。这些数字用于表示命令的连续重复次数,因此可以对源代码进行行程编码。 8>等于>>>>>>>>。 长度始终在命令的左侧。 您的任务是编写最短的程序/函数,将输入字符串(RLE Brainfuck片段)转换为常规Brainfuck程序。 例如: 输入: 10+[>+>3+>7+>10+4<-]3>2+.>+.7+2.3+.2<2+.>15+.>.3+.6-.8-.2<+.<. 输出: ++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>>++.>+.+++++++..+++.<<++.>+++++++++++++++.>.+++.------.--------.<<+.<. 每种语言中字节数最短的代码将获胜。

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 

1
Brainf ** k调试器
您的挑战是要像这样输入(Hello World程序): ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. 并输出提示(将为"> "): > 然后,用户可以在提示符下输入任何内容。您的简单调试器必须具有以下命令: S - 步 L步进后输出当前位置(请参阅)。 S(a positive integer) -走那么多空间 L - 位置 术语“位置”始终是指您在程序中的位置(即指令指针)。 格式如下: v +++++++[>+++++++<-]>. 这意味着程序的当前位置在第三个位置+。 G(an integer) - 去 这意味着继续踩,直到到达那个位置。如果您到达程序的结尾但还没有到那儿,只需退出程序即可。 负整数表示末尾有许多字符。是的,这意味着-0不同于0,并且-1是倒数第二个字符。 不要为此命令输出任何内容。 D -转储数组 格式像 1, 2, 3, 4, 5 如果数组是1, 2, 3, 0, 0, 0, 0, 0, ...,则仅输出1, 2, 3。 D(a …

5
在其他代码中隐藏Brainf ***问候
目的是编写一个程序(打印出明确的头脑操之外的任何东西),打印出Barney Stinson的最佳规则: 新总是更好。 正常解释时,但是 莱根...等一下... ary! 与Brainfuck解释器一起处理时。 可能是最受欢迎的兄弟赢了。您有72个小时的传奇经历。

3
编写脑力激荡的编译器
编写一个需要脑力激荡的程序并将其编译为可执行的机器代码的程序。您可以定位x86,x86_64,jvm(Java字节码)或armv6,并使用以下可执行格式之一:ELF,a.out,类文件,exe,com。该可执行文件应在Linux或Windows(或两者中的Java)上运行。 您的程序或生成的可执行文件都不能运行任何外部程序(例如另一个编译器,汇编器或解释器)。 最短的代码获胜。

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

4
忙脑海狸
编写一个不超过256个字符的Brainfuck程序,该程序将采取尽可能多的步骤,但不会无限循环。该程序可能不接受任何输入。 进一步来说: 假设右边有无限多个单元格。 一<当在左侧的单元格什么都不做。 阿-当单元值是零个集细胞255。 这些指令+-<>.在执行时均视为一步。 当一个[或]遇到,他会成为一个步骤。然而,如果该条件为真,并控制流程跳到,相应的]或[不不再次算作一个步骤。 采取最多步骤的解决方案将获胜。 如果您的解决方案中存在某种模式,则可以提供一个功能,以了解类似长度的程序n将执行多少步,但不是必须的。 要计算指令,可以使用此修改后的解释器: 例: ++[-] 遇到的指令是++[-]-],程序运行了7个步骤。

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
用BrainFuck打印'A'1000次
什么是最好的BrainFuck代码(就代码大小而言)才能打印“ A” 1000次? 我的方法是: 将“ A”设置为p [0] 将255设置为p [1]以显示255'A',3次 将235设置为p [1]以显示235'A' 这不是有效的方法,但是我找不到像乘法一样同时使用拖车计数器的方法 有没有比乘法更好的方法? 一个更笼统的问题:是否存在规则以尽可能小的代码对大量数字进行乘法运算?

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

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.