Questions tagged «brain-flak»

这一挑战与Brain-flak的深奥语言和基于Brain-Flak的语言有关。请注意,通常不建议要求答案使用特定语言的挑战。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  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 

28
惊喜连连看
该问题是旨在庆祝Brain-Flak的第一个生日的系列Brain-flak Birthday挑战的一部分。您可以在此处找到有关Brain-Flak诞辰的更多信息。 今天是Brain-Flak的第一个生日!所以我想我们会举办一个惊喜的生日聚会。因此,以您喜欢的语言打印 Surprise! Happy Birthday, Brain-Flak! (允许尾随空格) 与往常一样,程序应该打高尔夫球。但是,由于Brain-Flak程序由方括号组成,因此不会将源中的任何方括号都计入您。(字符()[]<>{}不计入您的字节总数),但必须保持平衡,以免使Brain-Flak感到不适。 规则 这是规则的细分 您来源中的方括号必须保持平衡。那就是您的程序的括号必须用以下语法来表示: S -> SS | (S) | [S] | <S> | {S} | E E空字符串在哪里。 也就是说,平衡字符串要么是两个平衡字符串的串联,要么是在平衡字符串周围大括号,要么是空字符串。 程序的分数是非括号字节的数量。 您的目标应该是使自己选择的任何语言的得分降至最低。 应用标准规则,因此您可以编写完整的程序或函数。 如果出现平局,原始字节数将成为平局 在某些语言(括号地狱, 括号,Glypho和Lenguage)中肯定会有零字节的解决方案。尝试找到在这不是一件小事的语言中打高尔夫的好方法。

8
打高尔夫球的Flak整型
整数很难用Brain-Flak表示。有8个运算子: () Evaluates to 1, but does not push anything on any stack [] Evaluates to an indeterminate value for the purposes of this question {} Removes the top of the stack and evaluates to it <> Switches to or back from the alternate stack and evaluates to zero (foo) …

12
扩大压缩的脑裂
此挑战是2018年4月LotM挑战以及Brain-flak 2岁生日的一部分 我在考虑编码Flask程序的最有效方法是什么。由于只有8个有效字符,因此显而易见的事情是将每个字符映射到3位序列。这肯定是非常有效的,但是仍然很多余。我们可以利用脑剥落代码的某些功能来缩短编码。 全部由2个匹配的方括号表示的nilads实际上充当单个信息单元,而不是2。如果我们用单个字节字符替换每个方括号,这将使编码小得多而不会丢失任何数据。 这个不太明显,但是monad 的结束字节也是多余的。您认为您可以猜出'?'以下代码段中的字符代表什么吗? {(({}?<>?<>? 如果我们假设输入的内容是有效的大脑标志,那么每个问号只有一个选项。这意味着我们可以明确地使用close monad字符来表示每个结束括号。这具有使字符集保持较小的附加好处,如果我们想使用霍夫曼编码,这将大有帮助。由于接近的monad字符很可能会成为最常见的字符,因此可以用一点来表示,这非常有效。 这两个技巧将使我们通过以下算法来压缩脑筋代码: 用替换monad的每个右括号|。换句话讲,将每个未在开头匹配之前的右方括号替换为小节。所以... (({})<(()()())>{}) 会成为 (({}|<(()()()||{}| 用它的封闭支架替换所有的尼拉丁。因此,其中没有任何内容的匹配方括号将使用以下映射: () --> ) {} --> } [] --> ] <> --> > 现在我们的最后一个示例变为: ((}|<()))||}| 删除尾随|字符。因为我们知道小节的总数应等于({[<字符总数,所以如果末尾缺少小节,我们可以推断出它们。因此,例如: ({({})({}[()])}) 会成为 ({(}|(}[) 今天的挑战是逆转这一过程。 给定一串只包含字符的压缩后的Flask,将其(){}[]<>|扩展为原始的Flak代码。您可以假设输入将始终扩展为有效的大脑标志。这意味着输入的前缀中|最多不会包含({[<字符。 输入将不包含结尾|字符。这些必须从上下文中推断出来。 与往常一样,您可以提交完整的程序或函数,并且输入/输出格式是允许的。并且由于这是一个代码高尔夫,因此您的代码将按源代码的长度(以字节为单位)进行评分,分数越小越好。 测试用例 这是一些测试用例。如果您想要更多,可以使用此python脚本和Brain-Flak Wiki生成自己的测试用例,这是大多数测试用例的来源。 #Compressed code #Original code ()))) (()()()()) ([([}()||||(>||{(})|>|}{((<}|||>}|}>} ([([{}(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{} ({(}|(}[)|||} ({({})({}[()])}{}) …

2
最快的迷你手枪奎宁
迷你Flak是的一个子集脑高射炮语言,其中<>,<...>和[]操作是不允许的。严格来说,它不能与以下正则表达式匹配: .*(<|>|\[]) Mini-Flak是Brain-Flak的最小已知图灵完整子集。 不久前,我能够用Mini-Flak制作Quine,但是它太慢了,无法在宇宙的生命周期中运行。 因此,我对您的挑战是使Quine更快。 计分 要对代码评分,请在代码@cy末尾添加一个标志,然后使用该标志在Ruby解释器中运行(使用ruby解释器在线尝试)-d。您的分数应打印到STDERR,如下所示: @cy <score> 这是程序终止之前所经过的周期数,两次运行之间相同。由于每个周期的运行时间大致相同,因此您的分数应与运行程序所需的时间直接相关。 如果Quine太长而无法在计算机上合理运行,则可以手动计算周期数。 计算周期数不是很困难。循环数等于运行的单子数加运行的nilad数的2倍。这与用一个字符替换每个nilad并计算总共运行的字符数相同。 评分示例 (()()()) 得分为5,因为它有1个单子和3个尼拉德。 (()()()){({}[()])} 得分为29,因为第一部分与以前相同,得分为5,而循环包含6个单子和2个得分为8的尼拉德。循环运行3次,因此我们计算其得分为3次。 1*5 + 3*8 = 29 要求 您的程序必须... 至少2个字节 在Brain-Flak中使用-A标志执行时打印其源代码 不匹配正则表达式 .*(<|>|\[]) 提示 该起重机高射炮解释是断然比Ruby解释器快,但缺少一些功能。我建议您先使用Crane-Flak测试您的代码,然后在您知道它可以工作时在ruby解释器中对其评分。我也强烈建议不要在TIO中运行您的程序。TIO不仅比台式机解释器慢,而且还会在大约一分钟后超时。如果有人在TIO超时之前设法获得足够低的分数来运行他们的程序,那将是非常令人印象深刻的。 [(...)]{}且(...)[{}]工作与<...>但不违反受限源要求 如果您想了解如何应对这一挑战,可以查看Brain-Flak和Mini-Flak Quines。

3
平衡支架
您的目标:给定一串方括号,输出将输入字符串转换为平衡了方括号的字符串所需的最小Damerau-Levenshtein距离。 输入项 输入的字符串将仅包含方括号,并且不包含其他字符。也就是说,它是中任何字符的组合(){}[]<>。您可以将输入作为字符串或字符数组。您不能对输入字符串做任何其他假设;它可能任意长(最大为您的语言支持的最大大小),它可能为空,方括号可能已经平衡,等等。 Damerau-Levenshtein距离 两个字符串之间的Damerau-Levenshtein距离是两个相邻字符的插入,删除,单字符替换和换位(交换)的最小数量。 输出量 输出应该是输入字符串和括号匹配的字符串之间的最小Damerau-Levenshtein距离。输出应为数字,而不是结果平衡的字符串。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套几层深。 [(){<><>[()]}<>()] <[{((()))}]> (感谢@DJMcMayhem的定义) 测试用例 Input Possible Balanced Output Empty Empty 0 [](){}<> [](){}<> 0 [(){}<> [(){}<>] 1 [(]) []() 1 [[[[[[[[ [][][][] 4 (](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7 >]{])< []{()} 3 ([)}}>[ (){}<> 4 {<((<<][{{}>[<) <>(<<[]>{}>[]) 5 …

9
Brain-Flak打高尔夫球的技巧
Brain-flak是一种基于堆栈的图灵语言,由我,DJMcMayhem和1000000000合作编写。 一些用户对Brain-Flak的神秘方式非常有经验。因此,我认为最好将这个问题设置为一种方法,以便我们以及希望其他人也可以与社区分享我们的知识,并降低使用这种“被设计成难以使用”的语言的准入门槛。甚至甚至可以教会我们更多的经验的人一些新的技巧。 那么,您有什么技巧可以使人脑部打高尔夫球?我正在寻找可用于一般性地解决高尔夫问题的想法,这些想法至少在某些方面是针对大脑问题的(例如,“删除评论”不是答案)。 请为每个答案发布一个提示。

6
追加还是追加?要看
明天将迎来一岁高龄!为了纪念它的生日,我们举办了一个PPCG风格的生日聚会,几个用户在其中发布与大脑flak相关的问题!帮助我们庆祝!:) Brain-flak是我写的一种深奥的语言,其中所有命令都是方括号,并且所有方括号必须完全匹配。借用我自己的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 仅在以下情况下,字符串才被视为“完全匹配”: 每个字符都是一个括号, 每对支架都有正确的打开和关闭支架,并且顺序正确 为了庆祝flask的第一个生日,今天的挑战是要采取一组不平衡的括号,并确定要使其成为有效flask所需的操作类型。 例如,((不是有效的脑筋代码,但是如果我们附加))它,它将变为(()),它是完全平衡的,因此是有效的脑筋。这使得此输入可追加。 同样,>}无效,但是我们可以{<在make之前添加{<>},这是有效的。这使该输入成为可前置的。 一些输入稍微复杂一些。例如,)][({不能仅通过追加或前置来使之有效。但是可以通过在前面[(和后面添加来使它有效})]。因此,这种投入既是prependable和追加。 最后,通过附加或前置的任何组合都不能使某些输入成为有效的大脑标志。例如,(>永远不能使之有效。(正在<创建<(>,并且正在)创建(>),这两个都无效)因此,此输入既不可添加也不可添加。 对于当今的挑战,您必须编写一个程序或函数,该程序或函数带有方括号,并确定该字符串是否为 appendable prependable both neither 您可以选择用于每种情况的值。例如,输出1, 2, 3, 4,或'a', 'p', 'b', 'n',或1, 'foo', 3.1415, -17,等等。只要每个输出都是不同且一致的,就可以了。你必须但是,明确指定哪种输出对应于哪种情况。 您可以以最方便的格式返回此值(例如,从函数返回,打印到STDOUT,修改参数,写入文件等)。 您可以假设输入永远不会是有效的大脑或空的。 例子 以下所有输入都是可添加的: )) (((()()())))} )>}] ()[]{}<>) 这些都是可附加的: (({}{}) (((( ([]()())( {<<{ 这些都是两个: …

20
找到第一场比赛
这是Brain-Flak生日前的一系列挑战之一。在这里找到更多。 挑战 对于这一挑战,您的目标是在完全匹配的括号中找到第一对匹配的()[]{}<>括号。借用DJMcMayhem对完全匹配的字符串的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 当且仅当每对括号中的正确开/右括号正确且顺序正确时,字符串才被视为“完全匹配”。 输入项 输入将由单个非空字符串或仅包含character的char数组组成()[]{}<>,并保证完全匹配。您可以采用符合我们I / O默认值的任何合理方式进行输入。 输出量 程序或函数的输出将是括号的索引,该括号将关闭第一个括号。输出必须是0或已1索引。同样,输出可以以与我们的I / O默认值相对应的任何合理方式进行。 测试用例 Input 0-indexed 1-indexed () 1 2 (<>) 3 4 <[]{<>}> 7 8 {}{}{}{} 1 2 [[]<>[]] 7 8 这是代码高尔夫球,最少字节获胜!

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 

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 

9
第三弹!
此挑战是2018年4月LotM挑战的一部分 Brain-Flak是一种图灵化的语言,在PPCG上享有很高的声誉。语言的记忆是由两个堆栈组成,而是一个“隐藏”的第三组被发现由瓦é在向导,导致大脑思维,高射炮方案的一些有趣的新方式。 那么,如何给那个可怜的隐藏第三堆栈更多的可见性呢?让我们创建一种语言,使第三个堆栈具有应有的识别力!在这里,我向您介绍Third-Flak。 语言 在Third-Flak中,只有一个堆栈,称为第三堆栈。运营商在他们的脑高射炮做同样的方式在第三堆栈上工作,但这里没有[],{},<>nilads没有{...}单子(所以在第三高射炮程序的唯一受理字符()[]<>)。这是每个运算符的工作(将给出示例,该示例表示第三个堆栈,并带有列表,其中最后一个元素是堆栈的顶部): ()是Third-Flak中唯一的两个字符的运算符。它会将第三个堆栈的顶部加1。例如:[1,2,3]→[1,2,4] (,[,<:未覆盖的前情况下,所有开口括号推0至第三层叠体。例如:[1,2,3]→[1,2,3,0] )从第三个堆栈中弹出两个元素,并推回它们的总和。例如:[1,2,3]→[1,5] ]从第三个堆栈中弹出两个元素,然后推回从第二个元素中减去第一个元素的结果。例如:[1,2,3]→[1,-1] >从第三个堆栈中弹出一个元素。示例[1,2,3]→[1,2] 这是该语言的其他规则: 在执行开始时,第三个堆栈仅包含单个0。 禁止在程序内部为空[]或<>(如果遵循Third-Flak的语义,它们将始终是noop,但实际上它们在Brain-Flak中具有不同的含义,无法在此处重新创建)。 括号总是需要平衡的,除非程序末尾的结尾的括号可能会丢失。例如,[()<(()是一个有效的Third-Flak程序(程序末尾的第三个堆栈为[1,0,1])。 一个程序只能包含六个允许的字符()[]<>。程序保证是非空的。 注意:以前的规则暗示,您不必处理需要从空堆栈中弹出的情况。 挑战 很简单,为Third-Flak写一个解释器。您的程序必须将Third-Flak程序作为输入,并在程序末尾返回第三堆栈的状态作为输出。 您的输出格式是灵活的,只要可以从中明确读取第三个堆栈的状态,并且始终以相同的方式编码相同的数字(这只是一种说法,任何输出格式都不是公然的方式)尝试作弊就可以了)。 您的输出选择可能会限制您可以管理的数字范围,只要这不会使挑战变得微不足道(因为这将是默认漏洞)。 测试用例 对于每个测试用例,第一行是输入,第二行是输出堆栈,用空格分隔的数字列表表示,其中堆栈的顶部是最后一个元素。 [()<(() 0 1 0 1 [((((()()()()())) 0 0 0 5 ((([()][()][()]))) -3 [<<(((()()()())((((( 0 0 0 0 0 4 0 0 0 0 0 [()]<(([()])><[()] -1 0 -1 …

8
写一个脑力激荡的经典口译员!
Brain-Flak(Brainf ** k和Flak-Overstow之间的交叉)是一种基于堆栈的深奥语言。自发布此挑战以来,该语言已得到发展和更新,但是该语言的第一个修订版被称为“经典大脑”。 您必须编写一个程序或函数,该程序或函数需要一串Brain-Flak经典代码并对其进行评估。它还将使用(可能为空)整数列表。有Brain-Flak经典程序的输入。 语言 Brain-Flak具有两个堆栈,分别称为“左”和“右”。活动堆栈从左侧开始。如果弹出或查看一个空堆栈,它将返回0。没有变量。程序启动时,每个输入将按顺序推入活动堆栈(以便最后一个输入位于堆栈顶部)。 Brain-Flak程序中唯一有效的字符是()[]{}<>,并且必须始终保持平衡。如果有无效字符,或者括号不匹配,则会出现不确定的行为。任何有效的东西。 函数有两种类型:Nilads和Monads。一个nilad是一个函数,0参数。这是所有的尼拉德人: () +1。 [] -1。 {} 弹出活动堆栈。 <> 切换活动堆栈。 在评估它们时将它们串联在一起。因此,如果我们在活动堆栈的顶部有一个“ 3”,则此代码段: ()(){} 将评估到1 + 1 + active.pop()将评估为5。将<>评估为0。 单子组采用一个参数,即一大堆Brain-Flak代码。这是所有单子: (n) 在活动堆栈上按“ n”。 [n] 将'n'打印为int和换行符。 {foo}当active.peek()!= 0时,执行foo。评估为0¹。 <foo> 执行foo,但将其评估为0。 这些函数还将返回它们内部的值,因此 (()()()) 将推3和 [()()()] 将打印3但 [(()()())] 将打印并推送3。 当程序执行完毕后,活动堆栈上剩余的每个值都将打印为整数,并在其之间使用换行符。其他堆栈上的值将被忽略。 规则: 您的程序必须支持(-128,127)范围内的数字,并且堆栈大小至少为255。如果支持更大,则更好。 下溢/上溢未定义。 样本IO: 空程序: 输入:无 输出:无 加成。资源: …

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

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 …

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.