maxalВернёмся немного назад
Когда я спросила вас, как у вас дела с проверкой смитов на предмет построения магического квадрата 4х4 из последовательнох смитов, вы ответили, что проверили смиты до
и с помощью различных эвристик нашли в этом интервале всего 28 потенциальных массивов (то есть наборов по 16 последовательных смитов), из которых может быть составлен магический квадрат. Но "окончательный диагноз" вы ещё не поставили, потому что не нашли достаточно эффективную процедуру проверки найденных массив на предмет построения магического квадрата.
Далее я предложила вам свою процедуру проверки и проверила выложенные вами потенциальные массивы всего за 2 минуты. И как ни крути, моя процедура проверки основана
на той самой формуле 7+9.
В ответ на это вы написали:
Цитата:
Но выборка 7 значение параметров из 16 - это 16*15*14*13*12*11*10 вариантов. Вероятно, их можно уменьшить в десяток раз с учётом поворотов/симметрий квадрата, но все равно остается более вариантов. Вы уверены, что вы учитываете все варианты и что ваша программа гарантированно найдёт магический квадрат, если он существует?
Так? Этот этап вы помните?
То есть вы сомневались в правильной работе этой самой формулы 7+9.
Теперь вы "открыли" эту же самую формулу и утверждаете, что это самый эффективный алгоритм и самая оптимальная формула.
Интересно, не правда ли?
Для меня, например, построение магических квадратов 4-го порядка давно пройденный этап. И если бы последовательные числа Смита, из которых составится магический квадрат, не были астрономическими, я давно нашла бы этот квадрат (или его нашёл бы, например, tolstopuz, который давным-давно проверил смиты до миллиарда на предмет построения магического квадрата 4-го порядка из последовательных смитов).
Далее, для меня пройденный этап и построение магических квадратов 5-го порядка. Я давно написала свою статью "Общие формулы магических квадратов", в которой представлены общие формулы и схемы для построения магических квадратов порядков 4 - 7 (статья в 3-х частях).
На основании моей формулы для квадратов 5х5 svb сделал превосходную программу для построения таких квадратов (можно сколько угодно её оптимизировать, но
суть алгоритма от этого не изменится!)
Я не писала в своей статье и здесь не утверждаю, что моя программная реализация формул 7+9 и 14+11 для квадратов 4-го и 5-го порядков соответственно является самой оптимальной. Более того, я вполне согласна с анализом моей программы, который дал svb. Заметьте: он делал анализ именно
программной реализации, а не самой формулы. Потому что он хорошо понимает, что программную реализацию одной и той же формулы можно выполнить по-разному.
Я здесь задавала вопрос: реально ли выполнение программы, составленной по формуле 14+11? Мне никто не ответил, пока не пришёл svb и не показал готовой программой, что это вполне реально.
А вы сейчас пришли и заявили: "закроем этот вопрос. Вот
самая эффективная формула для квадратов 5-го порядка". И, наверное, демонстрируете ту же самую формулу 14+11 (даже не стала смотреть вашу формулу; ещё раз повторю - для меня это давно пройденный этап и потому мне это совсем неинтересно).
А вот мне кажется, что самая эффективная формула для квадратов 5х5 у 12d3. Потому что он уже получил наименьший магический квадрат из последовательных смитов
А это является доказательством того, что его алгоритм самый лучший.
Более того, он уже давно реализовал свой алгоритм для квадратов порядка 6, и по его программе я построила квадраты данного порядка и из последовательных, и из произвольных смитов.
Может быть, вы и этот результат перечеркнёте и представите нам самую эффективную формулу для построения квадратов 6-го порядка? Интересно было бы посмотреть!
А ещё интереснее, если вы представите самую эффективную формулу для построения квадрата 7-го порядка. Вот это мне действительно очень интересно, потому что квадрат 7-го порядка ещё не найден ни из последовательных, ни из произвольных смитов.
И вряд ли здесь будет работать аналогичная формула, основанная на переборе
свободных переменных и
зависимых переменных.
Потому что даже при всех возможных оптимизациях здесь количество вариантов перебора будет действительно огромным, и выполнить такую программу за реальное время вряд ли получится.
Далее, замечу, что и для 4-5 и для 6-9 порядков есть ещё не один алгоритм, кроме предложенного вами. Об одном из таких алгоритмов я уже сказала - это алгоритм 12d3.
У меня есть ещё два алгоритма (кроме вашей самой эффективной формулы).
Один из них я разработала ещё 17 лет назад и применила не так давно для построения магических квадратов из простых чисел. Если вы помните, первым таким квадратом у меня был квадрат 6-го порядка. Далее по этому же алгоритму я построила магические квадраты порядков 7 - 15. Это всё было до того, как пришёл ice00 и представил свои программы. Насколько я понимаю, у него такой же алгоритм, как и в моих программах. Можно назвать этот алгоритм
вероятностным. Он основан на случайной генерации набора из
строк. Этот алгоритм прекрасно работает для построения квадратов из простых чисел и для квадратов из смитов больших порядков (начиная с порядка 11). А вот для квадратов из смитов порядков 4 - 10 этот алгоритм не работает по той простой причине, что вероятность построения такого квадрата из заданного массива смитов очень мала.
Наконец, я предложила третий алгоритм (когда ещё не были найдены квадраты 6-го порядка). Этот алгоритм очень подробно изложен здесь конкретно для порядка 6. Но понятно, что его можно применить для всех порядков 4 - 9.
Я здесь просила всех дать оценку эффективности этого алгоритма и возможности его реализации. Вы почему-то скромно промолчали (как главный специалист по самым эффективным алгоритмам). Высказался только ice00 и ещё одн товарищ. ice00 сказал, что этот алгоритм можно реализовать не только для порядка 6, но и для порядков 7 - 9, и взялся это сделать. Однако задачу не осилил
Не знаю, как для порядков 8-9, а для порядка 7, как мне кажется, алгоритм вполне можно реализовать. И уж тем более для порядков 4 - 6!
И как знать, может быть, этот алгоритм будет намного эффективнее вашей "самой эффективной формулы".
Теперь вы, надеюсь, поняли, что построение нетрадиционных магических квадратов порядков 7 - 9 отнюдь не является "глупой и пустой головоломкой"? (как вы изволили мне заметить на мою просьбу предложить эту непростую задачу студентам, изучающим программирование).
Резюме:
1. лучшим доказательством вашей "самой эффективной формулы" будет готовый наименьший магический квадрат 4-го порядка из последовательных смитов;
2. с самой эффективной формулой для квадратов порядка 5 вы немножко опоздали: квадрат уже найден 12d3 (причём он нашёл оба квадрата: и из произвольных, и из последовательных смитов);
3. будет очень интересно посмотреть, какую самую эффективную формулу вы предложите для квадрата порядка 7.