Dada entero positivo n < 10
, crear una matriz de 2 dimensiones, donde cada lugar se llena con su x
y y
de índice (comenzando desde la izquierda superior).
Por ejemplo:
Entrada: 2
00 10
10 11
Entrada: 3
00 10 20
01 11 21
02 12 22
Una vez que se crea la cuadrícula, rellena cada índice al azar. Esto puede ser con una 'x' o cualquier otra forma de denotar que se ha llenado un lugar.
Usted determina qué ubicación llenar generando índices aleatoriamente para llenar la matriz. Solo puede llenar n ^ 2 veces, por lo que no puede llenar tantas veces como desee hasta que la matriz esté completamente llena. Al final, la matriz debe llenarse, por lo que debe hacer un trabajo para asegurarse de verificar los números aleatorios que usa para llenar para asegurarse de que el lugar aún no esté lleno.
Actualice o imprima después de cada relleno para mostrar la progresión de las iteraciones de relleno.
Ejemplo para llenar:
Entrada: 2
00 10
01 11
00
se elige al azar:
XX 10
01 11
01
se elige al azar:
XX 10
XX 11
00
se elige al azar, pero como ya se ha elegido, un re-roll elige 10
:
XX XX
XX 11
11
se elige al azar:
XX XX
XX XX
No imprima los números aleatorios ya que visualmente debería poder ver qué índice se seleccionó. Con esto quiero decir no imprimir " 11
se elige al azar:". Está aquí por el bien exploratorio.
Dado que este es el código de golf, el código más corto gana.
Diviértete y feliz golf!
n>= 10
posible? (debe comenzar a conocer la longitud máxima para completar correctamente los primeros 0). El relleno para ese caso es un índice a la vez, no 1 dígito a la vez, ¿verdad?Respuestas:
05AB1E , 29 bytes
Pruébalo en línea!
Espacio elegido como el carácter para los números eliminados (ya que se ve bien), pero podría reemplazarse con cualquier carácter sin afectar el conteo de bytes.
Explicación
fuente
Pip ,
41403836 bytes35 bytes de código, +1 para la
-S
bandera.Toma información del argumento cmdline. Reemplaza con espacio (cualquier otro carácter es posible para +1 byte). Produce iteraciones sucesivas separadas por una sola línea nueva (que es legal pero puede hacer que sea un poco difícil de leer). Pruébalo en línea!
Todo tipo de trucos sucios en este.La versión más corta tiene menos trucos sucios. : ^ (Explicación:fuente
n>=10
la aleatorización no funciona correctamente, pero aún así da en el blanco. Para números mayores que 10, solo elimina dóndeindex_i==index_j
. ¿Alguna idea detrás de la razón por la que sería?(mi@##Pmi@0)
parte. Puse varios hacks de reducción de bytes que dependen de que los índices sean de un solo dígito.##
, Entendido. Buen uso de suposiciones. Gracias por la explicación jaja.Groovy (202 bytes)
Ese formato de salida específico realmente arruinó mi recuento de bytes, pero meh.
Pruébelo: https://groovyconsole.appspot.com/edit/5171951567896576 (+9 bytes para una impresión más bonita)
Sin golf:
Ejemplo de salida:
fuente
4x4
cuadrado indexado 0 . El cuadrado en sí solo está separado por una nueva línea, así como cada iteración está separada por una nueva línea, por lo que la salida se ejecuta un poco.R,
848174 bytesAhora usa una indexación en lugar de cero. Se deshizo de 7 bytes gracias a @Billywob.
Ejemplo de salida para N = 3
fuente
replace
:for(i in sample(N^2)){m[i]="XX";print(m)}
AWK, 229 bytes
Agregué algunos bytes para darle un espacio a la salida entre cada matriz.
Nota: para hacerlo más 'aleatorio' entre ejecuciones, se
srand()
podría agregar una llamada a 7 bytes adicionales.Uso y salida después de almacenar el código anterior en
FILE
:fuente
PHP, 172 bytes
Descompostura
fuente
Python 2, 190 bytes
fuente