El reto
Su tarea es crear un programa o función que genere lo siguiente sin entrada:
a
bb
ccc
dddd
eeeee
ffffff
ggggggg
hhhhhhhh
iiiiiiiii
jjjjjjjjjj
kkkkkkkkkkk
llllllllllll
mmmmmmmmmmmmm
nnnnnnnnnnnnnn
ooooooooooooooo
pppppppppppppppp
qqqqqqqqqqqqqqqqq
rrrrrrrrrrrrrrrrrr
sssssssssssssssssss
tttttttttttttttttttt
uuuuuuuuuuuuuuuuuuuuu
vvvvvvvvvvvvvvvvvvvvvv
wwwwwwwwwwwwwwwwwwwwwww
xxxxxxxxxxxxxxxxxxxxxxxx
yyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzz
Tanteo
Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
code-golf
string
kolmogorov-complexity
alphabet
SpookyGengar
fuente
fuente
Respuestas:
05AB1E , 2 bytes
Pruébalo en línea!
Tenga en cuenta que esto se muestra como una lista de líneas, como lo permite explícitamente el OP. El enlace utiliza una versión con letra bonita (unida por líneas nuevas).
Cómo funciona
A
produce el alfabeto en minúsculas.ƶ
levanta el alfabeto (multiplica cada elemento por su índice).»
se une por nuevas líneas.fuente
Python 2 , 36 bytes
Pruébalo en línea!
fuente
APL (Dyalog) ,
1285 bytes SBCS3 bytes guardados gracias a @ngn
4 bytes guardados gracias a @ Adám
Las letras mayúsculas clarificadas por OP son válidas, así como las salidas como una matriz de cadenas.
Pruébalo en línea!
¿Cómo?
⌸
nos da todas las letras del⎕A
alfabeto con sus índices, entregados a la función⍴⍨
con la letra como argumento izquierdo y el índiceescomo argumento derecho.⍴⍨
resha ⍴ es su argumento de la derecha a la longitud suministrada por su izquierda.⍨
cambia la izquierda y la derecha (por lo tanto, el símbolo de la misma, se parece a la cara de alguien que lee esta explicación).fuente
819⌶↑⎕A⍴¨⍨⍳26
↑
también.Haskell , 27 bytes
Pruébalo en línea! Devuelve una lista de líneas. (Gracias a @totallyhuman por señalar que esto ahora está permitido)
Explicación:
fuente
<$
Repite su primer argumento n veces, donde n es la longitud de su segundo argumento?brainfuck , 74 bytes
Pruébalo en línea!
Explicación
Pruébalo en línea!
fuente
Befunge-98 (FBBI) , 27 bytes
donde
es un carácter de sustitución (ASCII 26)
Pruébalo en línea!
Utiliza letras mayúsculas y tiene una nueva línea final.
Explicación
El código funciona almacenando un contador (0 inicialmente) y en cada bucle:
1+
- Incrementa en 1:0\::
- Empuja cosas para que la pila se vea así:bottom [N, 0, N, N, N] top
'`j'@
- Comprueba si el contador es mayor que 26j'@
- Si es así, saltamos sobre el'
y usando@
j'@
- Si no es así, ejecutamos el'
, que empuja el valor ASCII@
a la pilaAhora la pila se ve así:
bottom [N, 0, N, N, 64] top
+\
- Agrega, luego cambia los 2 principales:bottom [N, 0, (N+64), N] top
la primera vez, esto es ASCII 65, oA
k:
- Duplica el segundo de los mejores(N+1)
tiempos: ahora hay(N+2)
valores de(N+64)
en la pila (más elN
y0
de antes)$$
- Deseche los 2 valores principales: ahora solo hayN
valores de(N+64)
>:#,_
- Imprime cada valor superior hasta llegar a un0
- esto significaN
copias de(N+64)
obtener impreso$
- Tira la0
- Ahora la pila es soloN
a,
- Imprime una entradaY se repite
Me gusta cómo usé
@
ambos para terminar el programa y para agregar al contador.fuente
rubí ,
3230 bytes-2 bytes gracias a @EricDuminil.
Pruébalo en línea!
fuente
27.times{|n|puts (n+96).chr*n}
sería correcto con 30 bytesJavaScript (ES6), 54 bytes
fuente
Excel VBA, 38 bytes
Usando la Ventana Inmediata. :)
fuente
"
BASH,
59 5440 bytesPruébalo en línea!
Gracias. 5 bytes a @Justin Mariner
fuente
for
bucle se puede jugar con este consejo para 54 bytes: ¡ Pruébelo en línea!Rubí, 38 bytes.
Devuelve una matriz de cadenas
-5 bytes gracias a totalmente humano
* -11 bytes gracias a algunos excelentes campos de golf de Jordan.
fuente
"\n"
nada;puts
lo hace por usted (aunque para futuras referencias$/
es 2 bytes más corto), pero puede deshacerse porputs
completo si hace de esto una lambda que solo devuelve una matriz de líneas. También puede cambiara=[*?a..?z];puts a.map
aputs (a=*?a..?z).map
yx*(a.index(x)+1)
parax*-~a.index(x)
. En total son 38 bytes .(a=*?a..?z)
está dentro del bloque, no los argumentos que forman parte de la lambda.V , 9 bytes
Pruébalo en línea!
Hexdump:
fuente
MATL , 9 bytes
Pruébalo en línea!
Explicación
fuente
&
no se puede usar para duplicar y transponer2Y2
?&
realidad no duplica ni transpone, aunque a veces produce el mismo resultado que eso. Lo que hace es modificar el número de entradas / salidas de la siguiente función. Por ejemplo, si usa&+
, la+
función ahora toma una entrada en lugar de dos, y genera la suma de la entrada con ella misma transpuesta. Pero eso es solo porque así es como+
funciona con 1 entrada (igual para=
,>
y algunos otros)Python 3 , 37 bytes
Imprime una nueva línea inicial (que está permitida).
Pruébalo en línea!
fuente
Jalea ,
54 bytesabuso de implementación furtiva de Python
-1 byte gracias a Adám (la salida de una lista de líneas se ha permitido; ya que ahora tiene una función de escritura en lugar de un programa)
Un enlace niládico que devuelve una lista de cadenas, las líneas
(para imprimirlo con las nuevas líneas como un programa completo, solo agregue
Y
nuevamente ).Pruébalo en línea! (el pie de página llama al enlace como nilad (
¢
) y obtiene la representación de Python del resultado (ŒṘ
) para mayor claridad ya que el comportamiento predeterminado del programa completo aplastaría el resultado comoabbccc...
)¿Cómo?
fuente
Øa×J
debería ser suficiente .MATL , 11 bytes
Pruébalo en línea!
Utiliza la multiplicación de difusión con unos para obtener una matriz cuadrada grande de 26x26 de las letras deseadas. A continuación, se toma la parte triangular inferior y se imprime implícitamente.
También 11 bytes:
fuente
Javascript,
87 bytes, 72 bytes (Muchas gracias a @steenbergh)Mi primera respuesta también:
fuente
ind=1
al principio, el puntoi<123
y coma después y el punto y coma final. también, haga su encabezado un poco más claro indicando el idioma: bytecount, prefijado con un #.j
for(i=1;i<27;){console.log(String.fromCharCode(i+96).repeat(i++))}
Japt ,
97 bytesEmite una matriz de líneas
Intentalo
Explicación
Divide (
¬
) el alfabeto en minúsculas (;C
) en una matriz de caracteres, mapea sobre la matriz (Ë
) y repite (p
) el elemento actual por el índice actual (E
) incrementado (°
) veces.fuente
®p°Y
Pip , 9 bytes
Pruébalo en línea!
En pseudocódigo, esto es
donde
z
está preestablecido al alfabeto en minúscula yi
está preestablecido a 0.Las soluciones basadas en mapas toman un byte adicional porque necesitan que el
-n
indicador se muestre en varias líneas:fuente
Acc !! 66 bytes
Pruébalo en línea!
Con comentarios
fuente
Haskell , 31 bytes
-12 bytes gracias a nimi.
Pruébalo en línea!
Esto no es un fragmento, es una función nula (una que no toma argumentos) que genera una lista de líneas que está permitida debido a este meta consenso .
fuente
R , 38 bytes
Una respuesta relativamente poco interesante. Itere
i
de 1 a 26, imprima lai
letra de la letra del alfabetoi
veces (con un salto de línea implícito).Pruébalo en línea!
Un enfoque más interesante podría ser usar algo como lo siguiente:
Esto nos da todas las letras en la cantidad correcta, pero sin saltos de línea. Quizás alguien más inteligente que yo pueda encontrar una manera de usar eso para dar una respuesta más golfista.
fuente
rep(letters, 1:26)
es mucho más corto ...Perl 5 , 19 bytes
Pruébalo en línea!
fuente
Óxido , 82 bytes
Tenía la esperanza de que hubiera sido mucho más corto, pero la conversión / conversión explícita entre tipos requiere muchos bytes :(
Pruébalo en línea!
fuente
PHP,
4746 byteso
Ejecutar
-nr
o probarlo en línea .fuente
J ,
1817 bytesExplicación:
Pruébalo en línea!
fuente
Perl 6 ,
2423 bytesIntentalo
Intentalo
fuente
Octava ,
2524 bytesPruébalo en línea!
Ahorré un byte gracias a Giuseppe, quien me informó que OP permite letras mayúsculas.
Explicación:
Cree un vector
x
con los valores ASCII del alfabeto en mayúsculas y transpórtelo. Agregue el negadox
(por lo tanto, 26 ceros, en un vector de fila, para crear una cuadrícula con (los valores ASCII de):Tome la matriz triangular inferior y conviértala en caracteres concatenando con la cadena vacía.
fuente
C (gcc) ,
48 bytes50 bytesVersión re-ejecutable, según cleblanc y Steadybox en los comentarios a continuación.
Pruébalo en línea!
fuente
s[9];main(i){for(;i<27;)puts(memset(s,i+95,i++));}
Aún supera mi respuesta por unos pocos bytes :)s[9];main(i){for(;puts(memset(s,i+95,i++))-27;);}
Japt,
171611 bytes-5 bytes gracias a Oliver
En ISO-8859-1
No es el mejor puntaje, pero sigo siendo un novato. Cualquier sugerencia es muy bienvenida.
Lista de salidas de líneas, según OP permitido. El enlace contiene 3 bytes más para líneas nuevas.
Pruébalo en línea!
fuente
1oBÊÄ
puede ser sustituido por26õ
. Puede guardar un par de bytes más haciendo algo como;26ÆCgX pXÄ
o
elf
argumento ...