Dado un número estrictamente positivo n , siga estos pasos:
- Cree una matriz A con n 1 s.
- Si A solo tiene un elemento, finalice. De lo contrario, a partir del primer elemento, reemplazar cada par de A con su suma, dejando el último elemento como es si A longitud 's es impar, y repetir este paso.
La salida debe contener un estado 's después de cada paso en orden desde la primera etapa hasta la última. El uso de lagunas estándar está prohibido. Este es un desafío de código de golf , por lo que gana la solución con la menor cantidad de bytes en cada idioma.
Casos de prueba
Cada línea en la salida de estos ejemplos es un estado. Puede enviar a través de cualquier formato razonable.
Entrada: 1
[1]
Entrada: 4
[1, 1, 1, 1]
[2, 2]
[4]
Entrada: 13
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 1]
[8, 5]
[13]
Entrada: 15
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[2, 2, 2, 2, 2, 2, 2, 1]
[4, 4, 4, 3]
[8, 7]
[15]
code-golf
arithmetic
Erik el Outgolfer
fuente
fuente
Respuestas:
05AB1E , 7 bytes
Pruébalo en línea!
fuente
MATL , 10 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 3 , 57 bytes
Pruébalo en línea!
Python 2 , 51 bytes
Pruébalo en línea!
-6 bytes en total gracias a tsh
Función recursiva. Para cada paso, construye una lista de potencias de
2
tal manera que la suma es menor o igual que el entero dado. Luego agrega el resto, si es más grande que0
.fuente
def f(i,j=1):l=i//j*[j]+[i%j][:i%j];print(l);i>j and f(i,j*2)
; Python 2 55 bytes:def f(i,j=1):l=i/j*[j]+[i%j][:i%j];print l;i>j>f(i,j*2)
i>j
no funcionó en mi solución anterior y olvidé probarlo después.Jalea , 6 bytes
Pruébalo en línea!
fuente
R , 65 bytes
-1 byte gracias a Giuseppe.
Pruébalo en línea!
%/%
%%
k=2^i
n%/%k
k
n%%k
Aquí estoy usando en
T
lugar dek
, ya que se inicializa comoTRUE
que se convierte a 1. Todavía necesito imprimir en+T
lugar deT
evitar un vector deTRUE
s en la salida.fuente
+T
es más corto queT+0
Pyth , 10 bytes
Pruébalo en línea!
-1 byte gracias a FryAmTheEggman
fuente
JavaScript (V8) , 109 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) ,
5554 bytesPruébalo en línea!
Por último,Sow
/Reap
late una alternativa!Devuelve una lista singleton que contiene una lista de los pasos.
fuente
K (oK) ,
1517 bytesPruébalo en línea!
fuente
J , 20 bytes
Pruébalo en línea!
-2 bytes gracias a Bubbler
fuente
[:
y()
.Jalea , 6 bytes
-1 byte gracias a Erik the Outgolfer .
Pruébalo en línea!
fuente
JavaScript, 55 bytes
Pruébalo en línea!
Esta es básicamente la versión de golf de los siguientes códigos:
fuente
Japt
-R
, 13 bytesIntentalo
fuente
Brachylog , 17 bytes
Pruébalo en línea!
Como terriblemente larga, ya que es, todavía me siento un poco inteligente para el uso
.ẉȮ
: la manera obvia para imprimir algo, a continuación, comprobar si su longitud es 1 seríaẉ₂l1
,ẉ₂~g
oẉ₂≡Ȯ
, en el≡
en el último es necesario porqueẉ₂
unifica su entrada y salida antes de imprimirlos, yȮ
está restringido previamente a ser una lista de longitud 1, por lo que la unificación falla si la entrada no es una lista de longitud 1.ẉ₂
Sin embargo, al final de un predicado, esta característica de se puede eludir usando la variable de salida en lugar de suscribirẉ
:.ẉȮ
primero unifica su entrada con la variable de salida, luego imprime la variable de salida y solo después unifica la variable de salida conȮ
.fuente
Stax , 10 bytes
Ejecutar y depurarlo
Procedimiento:
Fuente anotada:
fuente
Carbón de leña , 19 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Utiliza el formato de salida predeterminado de Charcoal, que es un número por línea, con submatrices a doble espacio entre sí. Explicación:
fuente
Perl 5 , 46 bytes
Pruébalo en línea!
La salida está separada por espacios.
fuente
Perl 6 , 38 bytes
Pruébalo en línea!
Hay un atajo para la rotura parcial que no recuerdo en este momento ...
Explicación:
fuente
Haskell , 75 bytes
Pruébalo en línea!
Trabaja al revés de la lista
[n]
hasta que alcanza una lista de solo unos.Yendo hacia delante, que podría conseguir 80 bytes usando
chunksof
desdeData.List.Split
:Pruébalo en línea!
fuente
Ohm v2 , 8 bytes
Pruébalo en línea!
Si se permite la salida en notación científica, de lo contrario:
Ohm v2 , 9 bytes
Pruébalo en línea!
fuente
Gaia , 12 bytes
Pruébalo en línea!
fuente