Su tarea consiste en escribir un pedazo de código que los ceros de la celda actual en la variante Brainfuck que, cada célula puede contener una firma entero de magnitud arbitrariamente grande, en lugar de la normal de 0 a 255.
Puede suponer que hay l celdas a la izquierda yr celdas a la derecha de la celda actual que inicialmente son cero. Su programa solo puede acceder a estas celdas l + r +1. Después de que su código termine, debe dejar las celdas adicionales l + r cero y el puntero a la celda actual en la posición original.
No puede usar ninguna entrada / salida.
El código con l + r más pequeño gana. Si hay un empate, gana el código más corto. También se recomienda indicar la complejidad temporal de su programa como referencia, donde n es el valor absoluto del entero original en la celda actual.
Herramientas utiles
Puede probar un programa Brainfuck en esta variación utilizando este intérprete en TIO de mbomb007 .
También puede usar el intérprete en esta respuesta por boothby (otras respuestas de Python probablemente también funcionen, pero no lo probé ).
fuente
Respuestas:
l + r = 0 + 2 = 2,
555351 bytesl + r = 1 + 2 = 3,
4644 bytesMi propio algoritmo El puntero debe comenzar en el número que debe ponerse a cero. La complejidad del tiempo es O (n ^ 2).
Cómo funciona:
n
.n+1
.n+1-2 = n-1
n-1+3 = n+2
.n+2-4 = n-2
.Repetimos el proceso, aumentando el decremento / decremento en cada paso, hasta obtener cero.
fuente
l + r = 0 + 2 = 2; 58 bytes
La complejidad es O (n ^ 2).
El siguiente es mi generador de programas de prueba, por lo que pueden ver que realmente intenté probarlo en caso de que no funcione ...
fuente