Вы имеете в виду наименьшие
Вот недаром, значит, я их бросила, полгода жалко терять на один пандиагональный квадрат 6-го порядка из смитов.
А svb вот почему бросил? У него ведь классный алгоритм и готовая программа в руках.
Вчера весь вечер ломала голову, как оптимизировать программу построения совершенного квадрата 8-го порядка. Сначала показалось, что можно свести количество независимых переменных к 7, сейчас 8. Но ни черта не получилось, там всюду по два числа из одной комплементарной пары и необходимо одно из них перебирать. Прямо уснула за столом, так ничего и не придумала.
Объявляю конкурс на самый эффективные алгоритмы построения совершенного квадрата 8-го порядка и идеального квадрата 9-го порядка.Приглашаются все!
У меня для совершенных квадратов пока 8 независимых переменных, для идеальных квадратов 9-го порядка - 11. Надо учитывать, что придётся проверять десятки, а может быть, и сотни наборов комплементарных пар.
В поиске совершенного квадрата 6-го порядка я проверила сотни наборов. Но в этой программе всего 4 независимых переменных и программа выполняется очень быстро.
Абсолютно упёрся идеальный квадрат 7-го порядка из простых чисел. Уже проверила сотни наборов. В программе 6 независимых переменных. Программу уже оптимизировала до предела, работает быстро. Но надоело проверять. И подряд проверяла, и выборочно. Нет квадрата
Pavlovskyкогда вы опубликовали сообщение "По мотивам алгоритма svb", у меня промелькнула мысль: надо использовать вашу находку с примитивными квадратами в алгоритме svb. Недаром я задала вопрос о количестве независимых переменных в вашем новом алгоритме. Это очень важный вопрос!
Как я уже говорила, в алгоритме svb 12 независимых переменных, но это на втором этапе алгоритма - собственно перебор. А для работы программы второго этапа необходимо ещё сформировать комплекты отклонений, это ещё 4 независимых переменных. В итоге получаются те же 16 независимых переменных, которые мы имеем в общей формуле.
При поиске пандиагональных квадратов из смитов по программе svb я обработала несколько тысяч комплектов отклонений. До магической константы 5964 квадраты находились быстро, с 2-3 попыток (одна попытка - это тысяча комплектов отклонений). Но на константе 5856 всё закончилось. Прокрутила программу раз 20 и бросила.
Начала искать другие пути, тут была высказана идея с заготовками и их достраиванием. Но svb подверг идею резкой критике, и я её бросила. Он писал, что работает над поиском наилучших наборов отклонений, чтобы его программа работала наиболее эффективно. Но, видимо, прекратил эту работу.
Собственно, я согласна, что путь поиска оптимальных отклонений и путь поиска всех возможных заготовок в чём-то близки. Но ни тот, ни другой путь не завершены.
Как я поняла ваш алгоритм, вы строите пандиагональный квадрат 6-го порядка из примитивных квадратов 3х3, которые уже обеспечивают правильные диагонали. А затем перестановками чисел в парах пытаетесь получить правильные строки и столбцы.
Я аналогично действую в построении идеального квадрата 9-го порядка, он тоже составляется из примитивных квадратов 3х3. Но я не составляю заранее примитивные квадраты, просто начинаю сразу строить идеальный квадрат 9-го порядка, используя все зависимости, которые дают примитивные квадраты. В результате у меня в программе получается всего 11 независимых переменных, в то время как в общей формуле идеального квадрата 9-го порядка 24 независимых переменных.