El desafío es simple; genera los siguientes seis conjuntos enteros 2D:
[[ 1, 11, 21, 31, 41, 51],
[ 3, 13, 23, 33, 43, 53],
[ 5, 15, 25, 35, 45, 55],
[ 7, 17, 27, 37, 47, 57],
[ 9, 19, 29, 39, 49, 59]]
[[ 2, 11, 22, 31, 42, 51],
[ 3, 14, 23, 34, 43, 54],
[ 6, 15, 26, 35, 46, 55],
[ 7, 18, 27, 38, 47, 58],
[10, 19, 30, 39, 50, 59]]
[[ 4, 13, 22, 31, 44, 53],
[ 5, 14, 23, 36, 45, 54],
[ 6, 15, 28, 37, 46, 55],
[ 7, 20, 29, 38, 47, 60],
[12, 21, 30, 39, 52]]
[[ 8, 13, 26, 31, 44, 57],
[ 9, 14, 27, 40, 45, 58],
[10, 15, 28, 41, 46, 59],
[11, 24, 29, 42, 47, 60],
[12, 25, 30, 43, 56]]
[[16, 21, 26, 31, 52, 57],
[17, 22, 27, 48, 53, 58],
[18, 23, 28, 49, 54, 59],
[19, 24, 29, 50, 55, 60],
[20, 25, 30, 51, 56]]
[[32, 37, 42, 47, 52, 57],
[33, 38, 43, 48, 53, 58],
[34, 39, 44, 49, 54, 59],
[35, 40, 45, 50, 55, 60],
[36, 41, 46, 51, 56]]
¿Qué son estas matrices enteras 2D? Estos son los números utilizados en un truco de magia con cartas que contienen estos números:
El truco de magia le pide a alguien que piense en un número en el rango [1, 60], y le da al que realiza el truco de magia todas las cartas que contienen este número. El que realiza el truco de magia puede sumar los números de la parte superior izquierda (todo un poder de 2) de las cartas dadas para llegar al número en el que la persona estaba pensando. Puede encontrar alguna explicación adicional de por qué esto funciona aquí.
Reglas de desafío:
- Puede generar las seis matrices enteras 2D en cualquier formato razonable. Se puede imprimir con delimitadores; puede ser una matriz de enteros en 3D que contiene las seis matrices de enteros en 2D; puede ser una lista de cadenas de líneas; etc.
- Se le permite llenar la posición inferior derecha de las últimas cuatro cartas con un valor negativo en el rango
[-60, -1]
o carácter en'*'
lugar de dejarlo fuera para hacer que las matrices enteras 2D sean matrices rectangulares (no, no está permitido llenarlas con0
o sin -integer comonull
/undefined
como alternativa, con la excepción de que*
también se usa una estrella en las cartas reales). - El orden de los números en las matrices es obligatorio. Aunque no importa el truco de magia física, veo este desafío principalmente como una matriz : la complejidad de kolmogorov , de ahí la restricción en el orden.
El orden de las matrices en la lista de salida puede estar en cualquier orden, ya que está claro en la tarjeta superior izquierda qué matriz es cuál.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
code-golf
number
kolmogorov-complexity
matrix
Kevin Cruijssen
fuente
fuente
n
aparece en lak
'ésima carta; donde mi desafío es un KC-challenge para generar las seis matrices.)[ascii-art]
desafío con reglas de salida estrictas (MD5), donde las mías son muy flexibles (y las filas / columnas se intercambian, y el rango es en[1,60]
lugar de[1,63]
; diferencias bastante menores, pero aún así).Respuestas:
MATL ,
1211 bytes-1 byte gracias al propio maestro :)
Explicación:
Pruébalo en línea!
fuente
Perl 6 ,
6346 bytesPruébalo en línea!
Salidas como matrices 2D en varias líneas, con la última matriz de cada una cortada si es necesario.
fuente
Python 2 , 76 bytes
Pruébalo en línea!
El método aquí es crear una lista de todos los números posibles
r(61)
y luego reducirla a la lista de números para una tarjetai&2**k
.Luego, al usar el corte de lista, esa lista de números 1D se reorganiza al tamaño correcto de tarjeta 6x5
[card nums][j::5]for j in r(5)
.Entonces, este generador solo se repite para 6 cartas
for k in r(6)
.Si bien no pude encontrar ninguna solución de menos de 76 bytes, aquí hay otras dos que también tienen 76 bytes:
Pruébalo en línea!
El siguiente está inspirado en Jonathan Allan .
Pruébalo en línea!
Cualquier comentario es muy apreciado.
fuente
Carbón , 26 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Intenté calcular las entradas directamente, pero esto ya era de 27 bytes antes de ajustarlo
*
en la parte inferior derecha. Emite cada fila unida con espacios y una línea en blanco entre tarjetas. Explicación:fuente
*
por diversión después de ver las estrellas en las cartas reales. Me preguntaba si habría algún idioma usándolo, pero me alegra ver que al menos uno lo hizo. :) ¡Buena respuesta!*
es al menos tan corto como cualquier otra cosa.05AB1E , 16 bytes
Pruébalo en línea!
Explicación
05AB1E , 17 bytes
Pruébalo en línea!
Explicación
fuente
Casco , 13 bytes
Pruébalo en línea!
Explicación
fuente
Python 2 ,
82807874 bytesPruébalo en línea!
-4 bytes, gracias a Jonathan Allan
fuente
iter
palabra clave es redundante aquí ya que un generador hará el trabajo igual de bien .Japt , 14 bytes
Intentalo
fuente
JavaScript (ES6),
9088 bytesPruébalo en línea!
Comentado
fuente
Python 2 , 73 bytes
Inspiración tomada de TFeld's y The Matt's .
Pruébalo en línea!
fuente
C (gcc) , 95 bytes
Pruébalo en línea!
Devuelve las matrices como una matriz int 3D en o.
Las últimas 4 matrices tienen -1 como último valor.
Guardado 2 bytes gracias a Kevin Cruijssen.
Guardado
78 bytes gracias a Arnauld.fuente
o[i][4][5]=-1;for(j=k=0;
afor(o[i][4][5]=-1,j=k=0;
para que se puedan eliminar los corchetes. Buena respuesta por cierto, +1 de mi parte.#include
para demostrar que funciona sin élCJam (18 bytes)
Demo en línea . Este es un programa completo que sale a stdout.
Disección
fuente
Jalea , 13 bytes
Un enlace niládico que produce una lista de (6) listas de listas de enteros. (Produce el uso de la opción predeterminada de no tener
*
o relleno negativo).Pruébalo en línea!
¿Cómo?
Un montón de 15 sin darse cuenta del truco "mínimo por longitud cuando se divide en cinco":
... y, mientras intentaba encontrar más corto, obtuve otros 13 sin necesitar el truco en absoluto:
fuente
Wolfram Language (Mathematica) , 88 bytes
fuente
Transpose@Partition[#~Append~-1,5]&/@Last@Reap[Do[Sow[k,k~NumberExpand~2],{k,60}],Except@0]
~
truco en un lugar más y he reemplazado la variablek
porNull
. Lo sentimos, no hay tiempo para agregar un enlace tio.Wolfram Language (Mathematica) , 99 bytes
Pruébalo en línea!
fuente
Transpose@
lugar deTranspose[...]
; relleno a 30 entradas antes de la partición; utilizandoTable[...,{k,6}]
para evitar la necesidadk=#
.Transpose@
funciona después de moverPadRight
en el interiorPartition
. Otro comentario es que la pregunta no parece permitir""
el marcador de posición; puede reemplazarlo-1
sin perder ningún byte.Jalea , 13 bytes
Pruébalo en línea!
Basada en la respuesta MATL de flawr . Un enlace niládico que genera una lista de listas según sea necesario.
fuente
R , 73 bytes
No estoy completamente seguro de haber cumplido con el requisito de orden, ya que R por defecto llena las matrices por columna, por lo que el orden que aparece físicamente en las tarjetas es el mismo que la forma en que se asignan las matrices en R.
Pruébalo en línea!
fuente
T-SQL, (
1,1681,139 bytes)Solo quería saber que podía hacerlo.
Versión optimizada
Demostración en línea
Pruébalo en línea!
Versión detallada - con notas como comentarios SQL
Voila!
Nota 1: parte de la lógica se refiere a la representación de corchetes y comas.
Nota 2: Las versiones más recientes de SQLServer tienen enfoques más compactos para crear listas delimitadas por comas. (Esto fue creado en SQL Server 2016).
Nota 3: Las matrices para una tarjeta determinada no están ordenadas (lo cual está bien según las especificaciones). Los números dentro de una matriz están ordenados correctamente. En este caso, cada "carta" de la pregunta presenta sus matrices en una fila separada en los resultados.
¿Más corto a las matrices de código duro?
Sí.
Byte me
fuente
C # (compilador interactivo de Visual C #) , 112 bytes
Pruébalo en línea!
fuente
Rojas ,
108107 bytesPruébalo en línea!
fuente
APL + WIN,
6562 bytesPruébalo en línea! Cortesía de Dyalog Classic.
fuente
MATLAB, 155 bytes
Esto podría ser más corto como líneas múltiples, pero quería hacerlo en una línea de código.
fuente
05AB1E , 14 bytes
Pruébalo en línea!
fuente
žO
lugar de solo6L
? Sé que no los está usando en su mapa, pero tengo curiosidad por qué ha usadoaeiouy
para crear una lista con 6 valores. xD Buena respuesta, por cierto!6L
,6и
,5Ý
,5°
, o9!
.тœ
,₅œ
,₁œ
, también el trabajo, son muy bien también (:₆b
funcionaría bien;)