Генерація точного рівномірного розподілу всіх головоломок судоку може бути виконана таким чином: ви можете просто довільно генерувати сітку 9x9, а потім зберігати її лише, якщо це правильна сітка судоку, інакше повторіть спробу.
917
[1,2,..9]9!
Можливо, ви бачите, куди я йду: розумний відповідь на цю проблему, ймовірно, змусить вас задуматися про основні симетрії сіток судоку. У цьому напрямку було зроблено багато роботи, щоб довести той факт, що 17 - це мінімальна кількість доказів до судоку ( див. Цю статтю ), і ви можете зайти сюди, щоб побачити це точне перерахування 5 472 730 558 класів з 3 359 222 подібних сіток, який використовує ці симетрії:
- Перестановки цифр
- Перестановки рядків (смуги та рядки всередині кожного діапазону)
- Те ж саме для стовпців
- Транспозиція
9!,64,64,2
EDIT: щоб пристосувати це до неповних головоломок, ви можете випадковим чином вибрати підмножину вашої сітки, перевірити, чи рішення унікальне з вирішувачем судоку та повторіть спробу, якщо ні. Це не є рівномірним розподілом, оскільки кількість неповних загадок з унікальним рішенням може бути різною для двох сіток. (Я був би дуже здивований інакше)