Creé un pequeño proyecto de código abierto para un sudoku genérico
mccalv / sudoku-generator.
El algoritmo para la generación de la matriz es el siguiente;
- Obtenga el conjunto [1-9] de los números
- Baraja la matriz al azar
- Rellene los primeros 3 3 cuadrados de la matriz anterior secuencialmente
- Ejecute la permutación de banda para los otros 2 cuadrados de la primera fila.
- Ejecute permutación de banda para las otras filas;
El algoritmo tiene un tiempo lineal y una complejidad temporal de [matemáticas] O (n) [/ matemáticas] y
itera sobre la matriz solo una vez. Dado el mismo conjunto original,
produce siempre la misma matriz de sudoku. En general es capaz de
generando 9! diferentes matrices de sudoku iguales al número de posibles
permutación del conjunto de números de Sudoku.
- ¿Hay algún trabajo para estudiantes de informática teórica?
- ¿Puede una máquina tener verdadera inteligencia artificial sin estar basada en matemáticas superiores?
- ¿Debo leer matemáticas y algoritmos discretos primero antes de comenzar la programación competitiva?
- Cómo encontrar el límite superior de una secuencia recursiva
- Si tengo una variable, X, en un modelo de regresión que se calcula usando otras tres variables (X = 0.3X1 + 0.5X2 + 0.2X3), ¿está bien que regrese 0.3X1, 0.5X2 y 0.2X3 por separado?
Ejemplo de permutación de banda (de una primera disposición aleatoria de 3 * 3)
Esto produce una matriz válida, no para obtener una matriz jugable, solo elimina una cantidad de celdas (según el nivel de dificultad)
---------------------------------- 6 | 4 | 8 | El | El | El | 5 | 3 | 9 | El | El | El | 7 | 1 | 2 | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | ---------------------------------- ---------------------------------- 6 | 4 | 8 7 | 1 | 2 5 | 3 | 9 9 5 | 3 | 9 6 | 4 | 8 7 | 1 | 2 7 | 1 | 2 5 | 3 | 9 6 | 4 | 8 El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | El | ---------------------------------- ---------------------------------- 6 | 4 | 8 7 | 1 | 2 5 | 3 | 9 9 5 | 3 | 9 6 | 4 | 8 7 | 1 | 2 7 | 1 | 2 5 | 3 | 9 6 | 4 | 8 8 | 6 | 4 | El | El | El | 9 | 5 | 3 | El | El | El | 2 | 7 | 1 | El | El | El | 4 | 8 | 6 | El | El | El | 3 | 6 | 5 | El | El | El | 1 | 2 | 7 | El | El | El | ----------------------------------