С ходу не получилось сделать программу генерации ПМК по представленной выше схеме. Пять строк программа делает быстро, а на шестой мёртво встаёт. Слишком много вложенных циклов и переменных. Вот результат первого прохода для пяти строк:
Код:
438 483 627 4 265 1633 1678 728
22 166 1219 27 378 1255 1282 1507
535 636 645 576 648 985 666 1165
1376 58 654 346 663 958 1111 690
762 85 825 634 852 861 922 915
1086 1736 1284 0 0 0 0 1581
0 1626 0 0 0 588 0 0
0 0 0 0 729 0 1449 0
Надо придумывать другую схему.
svbпроверила 14 ваших наборов, получила 5 ПМК (как я уже говорила, это не все возможные ПМК, моя программа не делает полную “выжимку” всех ПМК из набора). К сожалению, ни один ПМК не превратился в МК.
Ну, если проверять по 10 наборов в день, то за 50 дней все ваши наборы проверю
Хотя вероятность получить МК очень мала.
Итак, мене видятся три пути решения данной задачи:
1. как говорит 12d3, надо сделать более эффективную программу генерации ПМК
разных видов;
2. попытаться доказать по общему виду ПМК, представленных в виде остатков по модулю 9, что их невозможно превратить в МК;
Это можно попробовать сделать по алгоритму перемешивания строк и столбцов, который даёт все потенциальные диагонали. Ни один из ПМК с константой 5856 не имел больше 7 потенциальных диагоналей. Напомню, что ПМК с константой 5861, из которого получен МК, имел 17 потенциальных диагоналей.
3. придумать принципиально новый алгоритм построения МК 8х8.