所有那些繁忙的海狸都弄得一团糟。他们在磁带上写满了。以这种速度,我们的邻居将停止向我们提供无限制的磁带。
我们需要一种新的方式来玩忙碌的海狸游戏,这种方式不会破坏我们使用的所有磁带。
规则
只需动脑子。内存磁带无界。输入指令将始终读取,因此可用于清除值。
50个字节的源限制。
执行结束时,内存必须全为 s。
分数是内存指针的起始位置和最终位置之间的距离-如果在它们之间需要移动指令,则分数为n。越高越好。如果可以,请提供准确的值,否则请提供估计值。
例
32个字节,
-[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>]
说明
- 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 if 0 already.
[ [[>] ] ] Move to the cell past the right end.
[ [ + ] ] Make this cell 1.
[ [ > ] ] Go right again.
[ [ + ] ] Make this cell 1. We've now appended [1, 1].
[ [ [<]> ] ] Go back to the first nonzero cell on the left.
[ [ - ] ] And decrement it.
[ [ [ ]] ] We will need to transfer the rest of the number from the left to the right, so keep looping.
[ [ [[>]< ]] ] Go to the last nonzero cell on the right.
[ [ [ +<+ ]] ] Increment this and the one on the left. These are the cells we appended earlier. We transfer to them.
[ [ [ [<]> ]] ] Go back to the first nonzero cell on the left, which we are transferring from.
[ [ [ -]] ] Decrement here on the left to balance out the incrementing on the right.
[ >] We end the iteration on a now empty cell. Move right, the new left end is there.
本示例旨在说明创建提交时使用的一些技术。它的大小没有竞争力。
3
@Okx没问题-并不是要批评。如果还有另一种方法可以得分,允许使用任意代码长度,现在是时候在答案问世之前找到它了。由于当前的代码高尔夫标签具有误导性,我将重新标记一下
—
trichoplax
必须有一定的限制,因为更多的字节可以让您定义一个更快的增长函数。尤其没有理由选择50,它看起来足够高,可以实现一些不错的增长(绝对优于我的示例的指数级)和创新的解决方案,但对于Beklemishev的蠕虫或其他极其快速的增长而言仍然太小。//感谢您顺便修复了标签,我急忙解决了这个问题。
—
EPICI's
仅出于背景考虑:我们尝试避免代码高尔夫的最低分数,但这不是代码高尔夫的挑战,字节数也不是分数,因此我认为在这种情况下限制为50个字节绝对没有问题。
—
trichoplax
@EPICI我以前的繁忙海狸已经一无所有,这就是为什么我试图对其进行适应。
—
Jo King