无痕忙碌的海狸


20

所有那些繁忙的海狸都弄得一团糟。他们在磁带上写满了。以这种速度,我们的邻居将停止向我们提供无限制的磁带。

我们需要一种新的方式来玩忙碌的海狸游戏,这种方式不会破坏我们使用的所有磁带。

规则

只需动脑子。内存磁带无界。输入指令将始终读取,因此可用于清除值。0

50个字节的源限制。

执行结束时,内存必须全为 s。0

分数是内存指针的起始位置和最终位置之间的距离-如果在它们之间需要移动指令,则分数为n。越高越好。如果可以,请提供准确的值,否则请提供估计值。nn

32个字节,22551

-[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>]

说明

-                                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.

[255]nn>1[n1,n1](n1)(n)10[n]2n1

本示例旨在说明创建提交时使用的一些技术。它的大小没有竞争力。


3
@Okx没问题-并不是要批评。如果还有另一种方法可以得分,允许使用任意代码长度,现在是时候在答案问世之前找到它了。由于当前的代码高尔夫标签具有误导性,我将重新标记一下
trichoplax

3
必须有一定的限制,因为更多的字节可以让您定义一个更快的增长函数。尤其没有理由选择50,它看起来足够高,可以实现一些不错的增长(绝对优于我的示例的指数级)和创新的解决方案,但对于Beklemishev的蠕虫或其他极其快速的增长而言仍然太小。//感谢您顺便修复了标签,我急忙解决了这个问题。
EPICI's

2
仅出于背景考虑:我们尝试避免代码高尔夫的最低分数,但这不是代码高尔夫的挑战,字节数也不是分数,因此我认为在这种情况下限制为50个字节绝对没有问题。
trichoplax

1
信息:我认为我可以从其他挑战中 “轻松移植” 此答案并获得相似的分数。
user202729'9

1
@EPICI我以前的繁忙海狸已经一无所有,这就是为什么我试图对其进行适应。
Jo King

Answers:


10

A(255,2)1=(22535)4

+<+<<++>-[-[<+>>[-<[->+<]+>>]+<-]>[>]+[<]+<]>[->]

A[-[<+>>[-<[->+<]+>>]+<-]>[>]+[<]+<]A(m,n)1 - m, m, 1 <n times>mA(m,n)

我使用以下Python程序对程序的行为进行了建模:

def a(M, N):
    assert M > 0
    m = [-M + 1, M]
    n = N
    while m[-1]:
        while m[-1] > 1:
            m[-1] -= 1
            m[-2] += 1
            while n:
                m.insert(-1, 1)
                n -= 1
            n = 1
        n += 2
        m.pop()
    return n

1
您可以通过添加尾随来增加得分>
乔纳森·弗雷希

哇,非常令人印象深刻
alan2here
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.