Creo que una forma decente de determinar la dificultad sería ejecutar un simple solucionador recursivo en el rompecabezas de sudoku y verificar el tiempo de ejecución o la cantidad de pasos de retroceso. Un acertijo fácil tendrá casi ningún retroceso, o muy poco, ya que la primera suposición será la correcta, mientras que uno difícil debería tener un número significativo de pasos de retroceso.
Si está dispuesto a leer un artículo bastante técnico, http://arxiv.org/pdf/1208.0370.pdf, es un muy buen artículo que presenta el rompecabezas sudoku como un sistema dinámico que converge a un punto fijo que representa una solución para El problema inicial del sudoku. Los autores muestran que la tasa de escape del sistema dinámico está correlacionada con una dureza presupuesta para el rompecabezas.
La forma más fácil y factible de verificar si hay más de una solución sería para un programa un solucionador que intenta resolver el rompecabezas. Si logra resolverlo más de una vez, el sudoku original tiene más de una solución.
- ¿Cuáles son todos los algoritmos que debe saber para funcionar bien en Codeforces?
- Dado que muchos algoritmos de aprendizaje automático se ejecutan en GPU, ¿Julia sigue siendo una buena opción para eso?
- ¿Cómo diferenciar entre algoritmos de clasificación internos y externos en términos simples? ¿Cómo se lo explica a los principiantes?
- Procesadores de señal digital (DSP): cuando alguien escribe un archivo en una tarjeta SD usando un bus spi, ¿cómo sabe dónde debería estar el comienzo de un nuevo archivo?
- ¿Existe algún algoritmo o método para identificar patrones en una secuencia de filas / eventos?