Есть уже две программы, точнее два варианта.
1.
Программа для шаблона из вычетов 0, 3, 4, 8.
Поскольку магическая константа заранее неизвестна, в программе 17 свободных переменных. Они распределены по трём группам. Таким образом, свободные переменные могут пробегать 12, 28 или 13 значений, в зависимости оттого, к какой группе принадлежит переменная. 12, 28 и 13 - это соответственно количество чисел в каждой группе. В четвёртой группе (соответствующей вычету 3) нет свободных переменных.
Шаблон для этого варианта был показан выше.
Этот вариант программы подобен программе-тесту, но всё-таки не совсем совпадает, так как в тесте было ровно 36 чисел и магическая константа была известна, следовательно, было 16 свободных элементов.
Программа-тест, как я уже сказала, отработала нормально и квадрат построила.
2.
Программа для шаблона из вычетов 4. Здесь берём только смиты с вычетом 4, тоже разбиваем их на 4 группы. Магическая константа тоже неизвестна, значит, свободных переменных 17. Сколько они будут пробегать значений, зависит от количества чисел в группах. Количество чисел в группах можно задать любое, разумеется, в сумме должно быть не меньше 36 чисел, а то не из чего будет квадрат строить
Для этого варианта программы я ещё не сформировала группы смитов.
Обе программы довольно сырые. Это первое.
Второе: нет никакой гарантии, что хотя бы одна программа построит квадрат.
Третье: если у вас,
Garik2, такое большое желание погонять программы, надо найти возможность переписать программы на С++.
Это совсем несложно. Было так: ice00 переписал мне программу построения нетрадиционного пандиагонального квадрата 5-го порядка на С++. А потом я нашла более эффективную формулу и написала новую программу. Второй раз было очень неудобно просить его переписывать. Тогда я взяла тот исходник на С++, который он прислал, положила рядом свой исходник на Бейсике, и без труда переписала свою вторую программу. Послала ему новый исходник и попросила скомпилировать. И новая программа была готова. Не боги горшки обжигают. Ничего там сложного нет в этом С++. Но у меня катастрофически не хватает времени как следует разобраться в этом языке. Те две программы были очень похожие, и поэтому я переписала ту программу без всякого затруднения. Ну, кроме того, там "шапка" занимает полстраницы, что в этой "шапке" пишут, тоже ведь надо знать. Я тогда просто скопировала "шапку" с предыдущего варианта программы. Далее, нужен компилятор. Ну, одним словом, нет у меня на всё это времени.
А программа на С++ выполняется в разы быстрее программы на Бейсике. Не стоит гонять программы на Бейсике, если есть более эффективный способ их прогона.
Исходник программы я могу выложить.
Несколько раз я обращалась с просьбой переписать мои программы с Бейсика на С++ (хотя бы самые важные). Более того, один "проходящий" участник здесь тоже высказал такое пожелание, чтобы мои основные программы были переписаны на С++. Однако пожелание так и осталось пожеланием. Это просто никому не нужно.
Ну, а я худо-бедно обхожусь Бейсиком. Не гоняю программы сутками. Ищу оптимизации, более эффективные алгоритмы. Если программа не выдаёт мне ничего хотя бы за час, я на неё плюю и иду дальше. У меня десятки или даже сотни различных вариантов программ. Иногда всё-таки удаётся построить какой-нибудь квадратик