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 . . | . . .



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

January 2026

S M T W T F S
     12 3
45 6 7 8 9 10
11 12 13 14 151617
1819202122 23 24
25 26 2728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 27th, 2026 10:53 pm
Powered by Dreamwidth Studios