sab123: (Default)
[personal profile] sab123
Судоку - это если кто не знает, такая японская головоломка с заполнением цифрами "латинских квадратов" 9x9 (даются несколько базовых уже заполненных цифр, и цифры не должны повторяться в строках, столбцах, и "подквадратах" 3x3). Ну или вместо цифер - буквами. Выдумана она на самом деле в Америке, но из Японии пошла ее популярность.

Что примечательно, если сделал ошибку, то когда она приводит к стадии "не выходит каменный цветок", обычно оказывается легче перерешать все заново с начала, чем найти, где ошибка. Чем-то напоминает некоторые нехорошие программы. А я вам прямо скажу, в починке программ я просто гигант какой-то - в очень многих случаях могу быстро находить и исправлять ошибки там, где другие люди (в частности, авторы этих программ) плюют и начинают переписывать заново.

Так вот, интересно наблюдать во мне развитие экспериментов с этими судоками.

Сначала я ее увидел в "TV Guide", и первую из них решать было интересно. Потом еще несколько. Потом мне надоело и я решил хотя бы самый элементарный шаг - вычеркивание цифер, которые не могут появиться в каждой конкретной клетке, автоматизировать. То есть, конечно, программу, которая тупо перебирает циферки, тоже написать легко можно, но это неинтересно и неспортивно.

Процесс сильно поменялся - гоняем программу пока она не перестает находить что вычеркнуть, после чего смотрим глазами на более интересные комбинации, вычеркиваем чего надо руками, и дальше гоняем программу. Удовольствие все еще есть, но оно сделалось другими. Сам процесс писания программы был тоже вполне забавен, и смотреть на более хитрые комбинации интересно. Но вот этот классический момент с кропотливым выписыванием циферок, когда важно сделать много шагов без ошибки, потерялся.

Потом мне попалась на глаза статья в "Саентифик Америкэне" с более необычными судоками. К необычным разновидностям (треугольной; с замощением квадрата костяшками домино из перечисленного набора; с данными арифметическими связями между цифрами; совсме без базовых цифер, но зато с указаниями отношений больше-меньше между всеми соседними цифрами в каждой подгруппе 3x3) программа оказалась напрямую неприменима, и опять решать было интересно. Мне больше всего понравился вариант с больше-меньше.

С тройной судокой из той же статьи, где перекрываются 3 поля, получился облом даже с программой. В смысле, не то что бы совсем облом, но этих нетривиальных зависимостей оказалось много, и мне их искать надоело. Поэтому я взялся добавить их поиск и следование в программу. Оказалось, что все равно не получается. После чего я обнаружил и сформулировал еще один, более нетривиальный класс зависимостей, и добавил их в программу. Получилось. Программа все решила совершенно на автопилоте. В процессе ее написания опять было получено удовольствие. Там на самом деле есть еще одно сермяжное правило, которое я в программу не вогнал, поскольку его глазом увидеть легко, а в программе проверять - утомительно. Но оно, как оказалось, и не понадобилось. Может быть, что взаимосвязь других правил его полностью покрывает.

Теперь ковыряюсь над последней судокой из той же статьи: в ней вместо квадратов 3x3 нарисованы произвольные связные формы из 9 клеток. Уже неделю, наверное, на нее понемножку каждый день пялюсь, и периодически мне приходят в голову разные мысли. Вчера, вроде, дошел до точки бурного прогресса, но закончился он опять бурным обломом. Похоже, что я где-то по пути сделал ошибку, и непонятно, где именно. Нынче думаю, а не адаптировать ли опять программу. Но пока не до того и лень.

Кстати, если кому та тройная судока интересна, она вот:

                . . . | . . 1 | 9 . .
                . 5 . | . 2 . | . 8 .
                6 . 4 | 3 . . | 7 . .
                ---------------------
                7 . . | . . . | 6 . .
                . 8 . | . 7 . | . 5 .
                9 . . | 5 . . | . . 4
                ---------------------
        . . 9 | . . . | . . . | . . 3
        . 5 . | . . . | . . . | . 2 .
        6 . . | . . . | . . . | 1 . .
        ---------------------
        7 . . | . . 3 | . . 4
        . 6 . | . 5 . | . 9 .
        2 . . | 7 . . | 8 . .
        ---------------------
. . 5 | . . . | . . . | 1 . .
. 8 . | . . . | . . . | . 2 .
9 . . | . . . | . . . | 3 . .
---------------------
6 . . | . . 4 | . . 1
. 7 . | . 5 . | . 2 .
. . 2 | . . . | . . 9
---------------------
. . 3 | . . 1 | 7 . 6
. 5 . | . 8 . | . 1 .
. . 9 | 3 . . | . . .



Могу и программу дать интересующимся, но с готовой программой неинтересно.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

December 2025

S M T W T F S
 1 23456
78 91011 1213
141516 17 18 1920
21 22 2324 252627
28 293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 04:30 am
Powered by Dreamwidth Studios