事实证明是最佳的!
((([()][()][()])))
在线尝试!
说明
脑气弹,脑气弹,迷你气弹和Fλak
([()][()][()]) Push -3
( ) Copy
( ) Copy
打印:
-3
-3
-3
(后面有换行符)
经典机智
Brain-Flak Classic是Brain-Flak的原始版本,与现代Brain-Flak有一些重要区别。在BFC中[...]
打印其内容而不是否定它。
[()] Print 1
[()] Print 1
[()] Print 1
( ) Push 3
( ) Push 3
( ) Push 3
在执行结束时,将3 3 3
打印堆栈的内容()。
打印:
1
1
1
3
3
3
(后面有换行符)
k猫
Flakcats与其他4个flaks完全不同,我很惊讶这在Flakcats中有效。这里的三个运算符与Brain-Flak使用的运算符几乎相同。
Flakcats之间在此特定程序中的主要区别是(...)
算子,该算子在Flakcats中等效([{}]...)
于Brain-Flak。但是,这对我们没有影响,因为它会拾取零,因此其操作方式与Brain-Flak相同。
这是编译成Brian-Flak的程序:
([{}]([{}]([{}][()][()][()])))
打印:
-3
-3
-3
(后面有换行符)
脑弹和迷你弹的最优性证明
这不是正式的证明,而是非正式的证明,必须对其进行扩展以使其更加严格
由于存在限制,因此Brain-Flak程序必须为平衡字符串,并且程序长度必须为3的倍数,任何有效提交的长度都必须为6的倍数。这意味着任何小于18的解决方案都必须为长度12。
由于输出尾随换行符,因此堆栈的最终高度必须为三的倍数,否则我们将打破对输出的限制。
任何有效的长度为12的提交都必须使用两种花括号(少用大括号会破坏对不同字符数量的限制,而多则表示多于12个字符)。由于程序产生输出,因此必须进行推送。
这使我们可以选择其他大括号。选项包括:
<...>/<>
失败之所以失败,是因为我们需要生成“值”以创建除零以外的任何数字,我们必须放弃a ()
来创建一个使得不可能两次以上推送的数字。
[...]/[]
失败的原因与上次失败相同。方括号真的很难创造价值。该[]
单子可以创造价值,但我们首先需要推动的数字,我们再没有足够的括号遗留推三次。
{...}/{}
这个很有希望,我们可以创建一个循环并使用它()
来多次推送,但是遗憾的是这是不可能的。
为了使循环结束,在某个时刻堆栈上必须为零,为了使我们具有正确的输出,我们必须在程序结束时在堆栈上提供除零以外的值。因为我们既没有[]
,也没有<>
在循环结束零一定是从堆栈底部的隐含为零。这意味着循环无法将任何新数字添加到堆栈中,从而使其无效。
由于没有括号选项可以创建长度为12的程序,因此不存在。
由于Miniflak是Brain-Flak的子集,因此任何较短的Miniflak程序也将是较短的Brain-Flak程序,因此不存在。
Brain-Flueue是一种基于Brain-Flak的笑话语言。两者是如此相似,除了两行外,其他地方的解释都是相同的。顾名思义,两者之间的区别在于Brain-Flueue将其数据存储在队列中,而Brain-Flak将其数据存储在堆栈中。
首先,我们对Brain-Flak创建的程序大小有相同的限制,因此我们正在寻找大小为12的程序。此外,我们将需要a (...)
来创建任何输出和另一对。在<>
和[]
对不脑Flueue他们不脑高射炮工作的确切同样的原因工作。
现在我们知道我们的程序必须由字符组成((())){{{}}}
。
通过前面证明中使用的相同方法,我们可以证明最终程序中必须存在一个循环。
现在这里的证明有所不同,因为Brain-Flueue跨队列而不是堆栈操作,程序可以退出队列中包含值的循环。
为了退出循环,我们需要在队列中添加一个零(或一个空队列,但是如果队列为空,则会遇到与Brain-Flak相同的问题),这意味着我们将不得不打开程序({})
来创建零。我们将需要在循环内部进行推送,以将必要数量的项目推送到队列中。我们还需要在循环之前加一个非零的数字,以便我们完全可以进入循环。这将使我们的成本降至最低(())
。现在,我们使用了更多的paren。
因此,没有Brain-Flueue程序可以执行12字节的任务,而且我们的程序是最佳的。
以下解决方案在Flakcats和Brain-Flak Classic中是最佳的。
((([][][])))
说明
[][][] -3
((( ))) push 3 times
替代的24字节Brain-Flak解决方案
(<((<((<(())>)())>)())>)
在线尝试!
((<((<((<>)())>)())>)())
在线尝试!
((((((()()()){}){}){})))
在线尝试!