Программа решения судоку с объяснениями (онлайн)
Правила игры
Судоку — это игра-головоломка, где необходимо заполнить пустые клетки так, чтобысодержали все цифры от 1 до 9 (каждая цифра встречается только один раз).
- каждая строка,
- каждый столбец,
- каждый малый квадрат 3×3
Алгоритм заполнения ячеек судоку
Способ 1. «Скрытые одиночки»
2 | 3 | 4 | 1 | |||||
1 | ||||||||
1 | ||||||||
1 | ||||||||
В клетку строки заполняется цифра, если
- она отсутствует в строке,
- её можно вписать только в одну пустую клетку строки. Число становится кандидатом клетки, если этой цифры нет
- в малом квадрате 3×3, который содержит клетку,
- в столбце, который содержит клетку
Таким образом проверяется каждая цифра от 1 до 9 в первой строке, а затем во всех строках.
7 | 2 | |||||||
7 | ||||||||
1 | ||||||||
7 | ||||||||
7 | ||||||||
В клетку столбца ставится цифра, если
- она отсутствует в столбце,
- её можно вписать только в одну пустую клетку столбца. Число становится кандидатом клетки, если этой цифры нет
- в малом квадрате 3×3, который содержит клетку,
- в строке, который содержит клетку
Таким образом проверяется каждая цифра от 1 до 9 в первом столбце, а затем во всех столбцах.
7 | ||||||||
3 | 6 | |||||||
7 | 8 | |||||||
7 | 9 | |||||||
В клетку малого квадрата 3×3 заполняется цифра, если
- она отсутствует в малом квадрате 3×3,
- её можно вписать только в одну пустую клетку малого квадрата 3×3. Число становится кандидатом клетки, если этой цифры нет
- в столбце, который содержит клетку,
- в строке, который содержит клетку
Таким образом проверяется каждая цифра от 1 до 9 в первом малом квадрате 3×3, а затем во всех малых квадратах 3×3.
Способ 2. «Одиночки»
1 | ||||||||
8 | ||||||||
4 | 9 | |||||||
2 | 6 | 5 | 7 | |||||
3 |
В клетку заносится цифра, если
- в строке, которая содержит клетку,
- в столбце, который содержит клетку,
- в малом блоке 3×3, который содержит клетку
Таким образом проверяются все клетки.
Методы разгадывания судоку
Стратегия 1. Кандидат в двух-трёх клетках одного квадрата
Для того чтобы отгадать число в сложных кроссвордах нужно расписать кандидатов клетки. На бумаге получается месиво, в котором взгляд не цепляется ни за одну идею. Поэтому вначале указываются кандидаты, если:
3 6 8 9 5 6 4 9 5 4 2 9 9 3 8 6 4 5 1 7 3 5
В клетке можно указать только цифру «2» (см. способ "Одиночки"), т.к. «6» и «9» должны располагаться в других клетках блока 3×3 3 6 8 9 5 6 4 9 5 4 2 6 9 9 3 8 6 4 5 1 7 6 2 3 5
В клетке можно указать только цифру «2» (см. способ "Одиночки"), т.к. «4» и «5» должны располагаться в других клетках столбца 8 9 1 3 6 2 7 6 7 45 2 3 8 9 1 45
Если новые «скрытые одиночки» и «одиночки» обнаружены не были, то расписываются все возможные кандидаты для всех пустых клеток с учётом исключённых. А потом вычёркиваются те, что не подходят по причинам, описанным в Стратегии 2.
Стратегия 2. Группы кандидатов
Подсказка 2.1. Скрытые пары, тройки, четвёрки
Если две цифры-кандидата встречаются только в двух клетках одной строки/столбца/малого квадрата, то другие кандидаты в этих двух клетках удаляются
7 | 5 | 8 | 4 | 6 | 3 | 2 | 1 | 9 |
13 | 2 | 13 | 5 | 9 | 8 | 6 | 7 | 4 |
4 | 9 | 6 | 17 | 12 | 27 | 38 | 5 | 38 |
8 | 17 | 17 | 2 | 4 | 6 | 9 | 3 | 5 |
2 | 6 | 4 | 3 | 5 | 9 | 7 | 8 | 1 |
5 | 3 | 9 | 8 | 7 | 1 | 4 | 26 | 26 |
6 | 147 | 137 | 179 | 8 | 27 | 5 | 249 | 23 |
9 | 478 | 2 | 67 | 3 | 5 | 1 | 46 | 68 |
13 | 18 | 5 | 169 | 12 | 4 | 38 | 269 | 7 |
7 | 5 | 8 | 4 | 6 | 3 | 2 | 1 | 9 |
13 | 2 | 13 | 5 | 9 | 8 | 6 | 7 | 4 |
4 | 9 | 6 | 17 | 12 | 27 | 38 | 5 | 38 |
8 | 17 | 17 | 2 | 4 | 6 | 9 | 3 | 5 |
2 | 6 | 4 | 3 | 5 | 9 | 7 | 8 | 1 |
5 | 3 | 9 | 8 | 7 | 1 | 4 | 26 | 26 |
6 | 147 | 137 | 179 | 8 | 27 | 5 | 249 | 23 |
9 | 478 | 2 | 67 | 3 | 5 | 1 | 46 | 68 |
13 | 18 | 5 | 69 | 2 | 4 | 38 | 69 | 7 |
То же самое если три цифры-кандидата встречаются только в трёх клетках одной строки/столбца/малого квадрата.
Подсказка 2.2. Открытые пары, тройки, четвёрки
Если в двух клетках одной строки/столбца/малого квадрата используются только две одинаковые цифры-кандидата и ничего более, то те же кандидаты в других клетках этой строки/столбца/малого квадрата удаляются.
5 | 8 | 147 | 1237 | 6 | 9 | 24 | 1234 | 14 |
29 | 39 | 17 | 1237 | 4 | 12 | 6 | 5 | 8 |
26 | 36 | 14 | 123 | 8 | 5 | 7 | 1234 | 9 |
7 | 49 | 8 | 6 | 129 | 3 | 5 | 124 | 14 |
1 | 2 | 6 | 49 | 5 | 7 | 489 | 48 | 3 |
49 | 5 | 3 | 8 | 129 | 14 | 249 | 7 | 6 |
3 | 7 | 5 | 19 | 19 | 6 | 48 | 48 | 2 |
46 | 46 | 2 | 5 | 3 | 8 | 1 | 9 | 7 |
8 | 1 | 9 | 24 | 7 | 24 | 3 | 6 | 5 |
5 | 8 | 147 | 1237 | 6 | 9 | 24 | 123 | 14 |
29 | 39 | 17 | 1237 | 4 | 12 | 6 | 5 | 8 |
26 | 36 | 4 | 123 | 8 | 5 | 7 | 123 | 9 |
7 | 49 | 8 | 6 | 129 | 3 | 5 | 12 | 14 |
1 | 2 | 6 | 49 | 5 | 7 | 489 | 48 | 3 |
49 | 5 | 3 | 8 | 129 | 14 | 249 | 7 | 6 |
3 | 7 | 5 | 19 | 19 | 6 | 48 | 48 | 2 |
46 | 46 | 2 | 5 | 3 | 8 | 1 | 9 | 7 |
8 | 1 | 9 | 24 | 7 | 24 | 3 | 6 | 5 |
Пример «Открытые тройки» в 7-ом столбце из цифр «4», «6», «9»
79 | 6 | 3 | 5 | 48 | 17 | 2 | 1489 | 1489 |
79 | 5 | 4 | 2 | 68 | 17 | 3 | 1689 | 189 |
1 | 2 | 8 | 46 | 3 | 9 | 46 | 5 | 7 |
2 | 4 | 9 | 7 | 1 | 6 | 58 | 38 | 358 |
5 | 8 | 6 | 49 | 2 | 3 | 149 | 7 | 149 |
3 | 7 | 1 | 8 | 49 | 5 | 49 | 2 | 6 |
46 | 3 | 7 | 1 | 5 | 8 | 469 | 469 | 2 |
68 | 9 | 2 | 3 | 7 | 4 | 1568 | 168 | 158 |
48 | 1 | 5 | 69 | 69 | 2 | 7 | 348 | 348 |
79 | 6 | 3 | 5 | 48 | 17 | 2 | 1489 | 1489 |
79 | 5 | 4 | 2 | 68 | 17 | 3 | 1689 | 189 |
1 | 2 | 8 | 46 | 3 | 9 | 46 | 5 | 7 |
2 | 4 | 9 | 7 | 1 | 6 | 58 | 38 | 358 |
5 | 8 | 6 | 49 | 2 | 3 | 1 | 7 | 149 |
3 | 7 | 1 | 8 | 49 | 5 | 49 | 2 | 6 |
46 | 3 | 7 | 1 | 5 | 8 | 469 | 469 | 2 |
68 | 9 | 2 | 3 | 7 | 4 | 158 | 168 | 158 |
48 | 1 | 5 | 69 | 69 | 2 | 7 | 348 | 348 |
Пример «Открытые четвёрки» в малом квадрате из цифр «4», «5», «7», «8»
3 | 89 | 15 | 268 | 458 | 126 | 7 | 14589 | 4589 |
19 | 789 | 2 | 78 | 4578 | 17 | 3 | 14589 | 6 |
4 | 678 | 156 | 3 | 578 | 9 | 2 | 158 | 58 |
6 | 1 | 7 | 45 | 2 | 45 | 89 | 89 | 3 |
2 | 3 | 9 | 1 | 6 | 8 | 45 | 45 | 7 |
5 | 4 | 8 | 79 | 79 | 3 | 6 | 2 | 1 |
179 | 5 | 4 | 26789 | 789 | 267 | 189 | 3 | 289 |
79 | 2 | 3 | 45789 | 1 | 457 | 4589 | 6 | 4589 |
8 | 69 | 16 | 2459 | 3 | 245 | 1459 | 7 | 2459 |
3 | 89 | 15 | 26 | 458 | 126 | 7 | 14589 | 4589 |
19 | 789 | 2 | 78 | 4578 | 1 | 3 | 14589 | 6 |
4 | 678 | 156 | 3 | 578 | 9 | 2 | 158 | 58 |
6 | 1 | 7 | 45 | 2 | 45 | 89 | 89 | 3 |
2 | 3 | 9 | 1 | 6 | 8 | 45 | 45 | 7 |
5 | 4 | 8 | 79 | 79 | 3 | 6 | 2 | 1 |
179 | 5 | 4 | 26789 | 789 | 267 | 189 | 3 | 289 |
79 | 2 | 3 | 45789 | 1 | 457 | 4589 | 6 | 4589 |
8 | 69 | 16 | 2459 | 3 | 245 | 1459 | 7 | 2459 |
5 комментариев:
Как-то поменялись цифры: метод1, метод2, и бац - решение готово.
И как оно готово?
Просто для "не совсем специалистов" не совсем понятен и итог, выдаваемый практически сразу - без промежуточных шагов ("тут одинаково - значит тут стираем - тут остается только это...") и без особых комментариев.
Ну да ладно. Это же не обучающая программа :)
Спасибо.