Dado un número entero positivo n
, haga lo siguiente (y envíe cada etapa):
- comience con una lista que contenga
n
copias den
. - hacer los siguientes
n
horarios: - en el
i
paso th, disminuya gradualmente lai
entrada th de la lista hasta que lleguei
Así, por ejemplo, si lo dado n
es 4
, a continuación, se comienza con [4,4,4,4]
, y luego en el primer paso que tiene [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. En el segundo paso, que tiene [1,3,4,4]
, [1,2,4,4]
. En el tercer paso que tienes [1,2,3,4]
. Nada se hace en el cuarto paso.
Entonces su salida es [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Se permite cualquier formato de entrada / salida razonable.
Se aplican lagunas estándar . Este es el código de golf : la respuesta con el menor recuento de bytes gana.
code-golf
array-manipulation
Monja permeable
fuente
fuente
i
th siempre está indexado en 1.Respuestas:
Jalea , 9 bytes
Pruébalo en línea!
¿Cómo?
* Puede ser más fácil ver lo que está sucediendo con el producto cartesiano utilizado anteriormente con una entrada diferente:
fuente
R ,
838274 bytesPruébalo en línea!
En lugar de un doble bucle for, un
while
bucle es suficiente aquí: encontramos el primer índice donde la lista es mayor que el índice y decrementamos allí.K
tieneTRUE
donde seaN[i]>i
,which(K)
devuelve los índices verdaderos, y tomamos el primero con[1]
.fuente
Jalea , 12 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 75 bytes
Pruébalo en línea!
fuente
APL + WIN, 54 bytes
Solicita la entrada de pantalla de entero
Emite una matriz con cada fila que representa el resultado de cada paso, por ejemplo, para 4:
fuente
Jalea , 11 bytes
Pruébalo en línea!
Cómo funciona
fuente
Python 3 , 91 bytes
Pruébalo en línea!
fuente
Java (OpenJDK 8) , 135 bytes
Pruébalo en línea!
Explicación:
Crédito:
-8 bytes gracias a Jonathan Frech !
-16 bytes gracias a Kevin Cruijssen !
-1 byte gracias a Okx !
fuente
import java.util.*;
es parte del conteo de bytes, me temo. Y el código de @ JonathanFrech puede jugarse en 4 bytes más colocando el,i=0
después der[]
, y cambiando<-~a
a<=a
. ( Pruébelo en línea. 144 bytes ) (y he cambiado~-i
ai-1
para que sea más fácil de leer ..)import java.util.*;
mediante el uso dejava.util.Arrays x=null;
yx.fill
yx.toString
. (Tenga en cuenta que su solución actual es de 155 bytes con la requeridaimport java.util.*;
.)for(;r[i-1]>i;
lugar defor(;r[i-1]!=i;
.++i<=a
al golfi++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Pruébelo en línea 135 bytesHaskell,
69 67 6563 bytesDefinición recursiva:
¡Gracias a Laikoni por 2 bytes!
fuente
map
es dos bytes más corto con una comprensión de la lista: ¡ Pruébelo en línea!PHP, 153 bytes
Pruébalo en línea!
Código
Voy a intentar bajar los bytes o terminar la función recursiva
Explicación
fuente
Python 2 ,
8076 bytesPruébalo en línea!
Es un desperdicio tener dos
print
declaraciones, pero no puedo pensar en una mejor manera en este momento.fuente
Python 2 , 70 bytes
-2 bytes gracias a @LeakyNun
-2 bytes gracias a @JonathanFrech
Pruébalo en línea!
fuente
(I-1)
->~-I
i=I
y decrementando.Java (JDK 10) , 112 bytes
Pruébalo en línea!
fuente
J ,
1715 bytesPruébalo en línea!
Explicación
fuente
Retina , 49 bytes
Pruébalo en línea! Explicación:
Convierta la entrada a unario.
Cree una lista de n copias de
i,n
dóndei
está el índice de la copia.No imprima nada (cuando finalice el bucle).
Haga un bucle hasta que el patrón no cambie.
Borre temporalmente el
i
sy convierta eln
s en decimal y en salida.Tome la primera entrada de la lista cuyo valor excede su índice y decremente.
fuente
Python 3 ,
706765 bytesPruébalo en línea!
Versión sin golf:
fuente
C (clang) ,
131141 bytesPruébalo en línea!
Esto funcionará para todos
n
hasta 99. TIO trunca la salida. Puede admitir arbitrariamente más granden
cambiando el tamaño de la matrizm
según lo permita la memoria.El seguimiento está limitado a n = 1..9 pero es significativamente más corto
C (clang) ,
8992 bytesPruébalo en línea!
Actualizado: modificado para evitar la dependencia de la inicialización estática
fuente
static/global initialization because multiple test cases
no está permitido, ya que las funciones tienen que ser invocables más de una vez.m[j]--,p()
ap(m[j]--)
y guardar un byte.Clojure, 132 bytes
Esperaba que esto fuera más corto ...
Menos con estado pero más largo en 141 bytes:
fuente
Python 3, 101 bytes
Probablemente podría jugar más golf con la impresión, pero estoy lejos de mi computadora y no estoy completamente seguro de las reglas de Python 2 para configurar una variable para imprimir. Actualizaré más tarde cuando llegue a una computadora o si alguien aclara en los comentarios.
fuente
K (ngn / k) ,
3432 bytesPruébalo en línea!
fuente