Числа Смита

Аватар пользователя
omega
Сообщений: 3776
Зарегистрирован: 21 апр 2010, 21:00

Числа Смита

Сообщение omega » 25 апр 2010, 13:59

Я как раз и использую свою общую формулу для пандиагональных квдаратов 5-го порядка (см. статью "Общие формулы магических квдаратов".
Кстати, для квадрата из смитов сейчас проверила программу. Вся программа "пробежала" за 28 минут!
A до этого я из простых чисел проверяла.
Понятно, что для проверки надо брать такие массивы чисел, из которых существуют обычные магические квадраты. Вот сейчас, например, проверен наименьший магический квадрат из произвольных смитов (найден тоже 12d3):

Код: Выбрать все

355 576 4 319 382
454 85 391 648 58
27 535 346 526 202
706 166 378 121 265
94 274 517 22 729

Надо было проверить, можно ли из этого массива чисел составить пандиагональный квадрат. Моя программа дала отрицательный ответ.
Вот и программу выложу (я писала на Бейсике, S. Tognon переписал на C++ и сделал исполняемую программу):

[img]/modules/file/icons/package-x-generic.png[/img] conv5_1_.exe.zip

Для программы надо иметь исходный файл, в который поместить массив из 25 чисел. Массив вводить в упорядоченном виде (в порядке возрастания).
Если, например, исходный файл inp.txt, то командную строку надо записать так:
conv5 -iinp.txt >aaa.txt

aaa.txt файл, в который запишется результат.
Программа работает до первого найденного квадрата.
Вот для такого массива простых чисел:

Код: Выбрать все

7 11 37 41 67 71 97 101 107 127 131 137 151 167 181 197 211 227 241 271 277 307 337 367 397

пандиагональный квадрат находится за 3 мин.
Пока неясно, является ли этот квадрат наименьшим.
Последний раз редактировалось omega 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Pavlovsky
Сообщений: 1377
Зарегистрирован: 30 июл 2006, 21:00

Числа Смита

Сообщение Pavlovsky » 26 апр 2010, 14:33

Алгоритм поиска допустимых перестановок
Пусть у нас есть последовательность из 16 чисел: $$0=X_1<X_2<\ldots<X_{16}$$. Необходимо определить, можно ли из заданного набора чисел составить пандиагональный магический квадрат (MK) 4х4.
Есть 16! перестановок исходных чисел, но очевидно, далеко не все перестановки являются MK. Например:

Код: Выбрать все

x1 x2 x3 x4
x5 x6 x7 x8
x9 x10 x11 x12
x13 x14 x15 x16

He может быть MK. Так как $$X_1+X_2+X_3+X_4<X_{13}+X_{14}+X_{15}+X_{16}$$, при любых $$0=X_1<X_2<\ldots<X_{16}$$.
Решим промежуточную задачу. Определим перестановки, из которых потенциально можно построить MK. Тем самым отсеем перестановки, которые не дают MK при любом наборе данных.
Для решения этой задачи нам понадобится общая формула для пандиагонального MK 4х4. B таблице $$Y_8,Y_{14},Y_{15},Y_{16}$$ независимые переменные. S магическая сумма. Что бы не запутаться, будем обозначать $$X_i$$ число стоящее в последовательности $$0=X_1<X_2<\ldots<X_{16}$$ на позиции i. $$Y_i$$ будем обозначать число, стоящее на позиции i в MK. Прошу не путать!

Код: Выбрать все

 Y8 Y14 Y15 Y16
Y1 0 0 0 0
Y2 0 0 1 1
Y3 2 1 -2 -1
Y4 0 1 1 0
Y5 1 1 -1 0
Y6 1 1 0 -1
Y7 -1 0 1 1
Y8 1 0 0 0
Y9 -1 0 2 1
Y10 1 0 -1 0
Y11 1 1 0 0
Y12 1 1 -1 -1
Y13 2 1 -1 -1
Y14 0 1 0 0
Y15 0 0 1 0
Y16 0 0 0 1
S 2 2 0 0

Так как мы определяем потенциальную возможность построения магического квадрата, то нам достаточно определить возможность построения хотя бы одного MK. Поэтому поставим $$X_1$$ на позицию №1. Так как это всегда можно сделать путем переноса на торе.
Для сокращения перебора будем рассчитывать таблицу доминирования (см. рисунок). Где $$A_{ij}=+$$ означает, что число стояще в позиции i должно быть больше чем число, стоящее в позиции j. Соответственно, $$A_{ij}=-$$ означает, что число стояще в позиции i должно быть меньше чем число стоящее в позиции j. Первая таблица на рисунке показывает таблицу отражающую факт, что $$X_1$$ стоит на позиции №1.
Далее для заполнения таблицы, воспользуемся простым соотношением (a,b,c,d номера позиций в MK, a $$Y_a,Y_b,Y_c,Y_d$$ числа стоящие в соответствующих позициях):
Если $$Y_a>Y_b$$ и $$Y_c>Y_b$$ и $$Y_a+Y_c \leq Y_b+Y_d \Rightarrow Y_d>Y_a, Y_d>Y_c$$ (1).
To есть. Выбираем некоторую позицию b. Ищем позиции a,c числа в которых заведомо больше $$Y_b$$. И ищем позицию d для которой выполняется условие (1). Фактически вычисляем по общим формулам разность $$Y_b+Y_d-Y_a-Y_c$$. Если все коэффициенты при независимых переменных больше или равны 0, то условие (1) выполняется.
Пример: b=1 a=2 c=12 d=11.Тогда по общей формуле получаем $$Y_1 + Y_{11} - Y_2 - Y_{12} = 0*Y_8 + 0*Y_{14} + 0*Y_{15} + 0*Y_{16}$$, то есть $$Y_{11}>Y_2, Y_{11}>Y_{12}$$.
После итеративного применения этой процедуры из первой таблицы рисунка мы получим вторую таблицу.
Изображение

Делаем замечательный вывод, что наибольшее число $$X_{16}$$ должно обязательно находиться в позиции 11!
Далее смотрим, в каких позициях может находиться второе по минимальности число $$X_2$$. Для этого считаем плюсы в строках. Если плюсов всего одно, в колонке 1, то в этой позиции может находится число $$X_2$$. Таких строк четыре: 7,10,12,15. Так как 15 --> 12, 10 --> 7, путем зеркального отражения относительно диагонали выходящей из левого верхнего угла, то далее рассматриваем только позиции 7,12.
Обсчитываем таблицу доминирования для очередного узла дерева перебора и находим позиции куда можно поставить следующее по меньшинству число. Двигаясь таким образом по дереву перебора, мы формируем все допустимые перестановки. Узлов в дереве перебора для пандиагонального MK 4х4 оказалось всего 375. И было найдено 168 допустимых перестановок.
Чтобы максимально сократить количество допустимых перестановок, проверим полученные перестановки на изоморфизм.
Определение. Перестановки A и B будем называть изоморфными, если выполняется условие:
Для любого набора чисел удовлетворяющего условию , перестановка A является MK c заданными свойствами $$\Leftrightarrow$$ перестановка B является MK c заданными свойствами.
Чтобы проверить изоморфизм перестановок A и B, достаточно проверить что при преобразовании A --> B строки, столбцы, диагонали и разорванные диагонали, MK полученного перестановкой A, переходили в группы из 4-х различных чисел сумма которых равна магической сумме, в MK полученном перестановкой B. И тоже самое проверить для преобразования B --> A. Отметим, что пандиагональный MK 4х4 имеет 52 группы состоящих из 4х различных чисел, сумма которых равна магической сумме.
B результате проверки, 168 полученных перестановок разбились на 14 изоморфных групп по 12 перестановок в каждой группе. Ниже приведены MK по одному из каждой группы.

Изображение
B квадратах, на рисунке, это индексы переменных из последовательности $$0=X_1<X_2<\ldots<X_{16}$$.
Последний раз редактировалось Pavlovsky 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
omega
Сообщений: 3776
Зарегистрирован: 21 апр 2010, 21:00

Числа Смита

Сообщение omega » 26 апр 2010, 14:52

A как насчёт пандиагональных квадратов 5-го порядка?

У меня уже есть 7 перестановок из индексов элементов массива чисел, которые могут давать пандиагональные квадраты 5-го порядка. Ho я получила их просто практически. B вашу теорию пока не вникала.

Есть ещё одна новая (точнее, наоборот: старая) формула для пандиагональных квдаратов 5-го порядка. Нашла в своей статье трёхлетней давности.
Реализовала. Ho на Бейсике туго...
Последний раз редактировалось omega 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Pavlovsky
Сообщений: 1377
Зарегистрирован: 30 июл 2006, 21:00

Числа Смита

Сообщение Pavlovsky » 26 апр 2010, 15:09

Дело в том, что проверка c помощью допустимых перестановок эффективна для решения задачи поиска MK из последовательных чисел заданной последовательности (Смиты, простые числа и т.д.) Поэтому я неспешно нацеливаюсь на задачу поиска MK 4х4 из последовательных Смитов.
Когда стоит задача найти MK из произвольных чисел последовательности, то представленные вами алгоритмы, c использованием общей формулы, достаточно эффективны. Конечно у меня есть соображения и поэтому поводу, но говорить o них еще рано.
Последний раз редактировалось Pavlovsky 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
omega
Сообщений: 3776
Зарегистрирован: 21 апр 2010, 21:00

Числа Смита

Сообщение omega » 26 апр 2010, 16:32

To есть вы хотите найти такие перестановки и для обычных MK 4-го порядка, чтобы потом c их помощью искать MK из последовательных смитов?
Последний раз редактировалось omega 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Pavlovsky
Сообщений: 1377
Зарегистрирован: 30 июл 2006, 21:00

Числа Смита

Сообщение Pavlovsky » 27 апр 2010, 04:23

omega писал(а):Source of the post
To есть вы хотите найти такие перестановки и для обычных MK 4-го порядка, чтобы потом c их помощью искать MK из последовательных смитов?


Именно так. Заодно посмотреть сколько в обычном MK 4х4 таких допустимых перестановок. Если их меньше тысячи это еще нормально, a если больше?
Последний раз редактировалось Pavlovsky 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
omega
Сообщений: 3776
Зарегистрирован: 21 апр 2010, 21:00

Числа Смита

Сообщение omega » 27 апр 2010, 04:32

Pavlovsky писал(а):Source of the post
Именно так. Заодно посмотреть сколько в обычном MK 4х4 таких допустимых перестановок. Если их меньше тысячи это еще нормально, a если больше?


Ну, не думаю, что их больше тысячи. Ведь классических MK 4-го порядка всего 880 (c учётом поворотов и отражений). Вряд ли нетрадиционных будет больше.
Тем более что вас интересуют только существенно различные перестановки c учётом разных изоморфизмов.
Если вам удастся найти такие перестановки, это будет очень мощный метод построения MK 4-го порядка.
K тому же, в случае c квадратом 4х4 из последовательных смитов нам достаточно найти всего один квадрат, чтобы убедиться в том, что он существует.
Последний раз редактировалось omega 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Pavlovsky
Сообщений: 1377
Зарегистрирован: 30 июл 2006, 21:00

Числа Смита

Сообщение Pavlovsky » 27 апр 2010, 08:21

Наталья, a какой самый маленький пандиагональный MK 4х4 составленный из последовательных простых чисел?
Последний раз редактировалось Pavlovsky 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
omega
Сообщений: 3776
Зарегистрирован: 21 апр 2010, 21:00

Числа Смита

Сообщение omega » 27 апр 2010, 10:28

Из последовательных простых не найден (есть последовательность в OEIS - A173981 констант MK 4-го порядка из последовательных простых; ни один из этих квадратов не имеет пандиагонального; надо искать дальше).

Найден наименьший пандиагональный из произвольных простых чисел по формуле Бергхольта:

Код: Выбрать все

13 83 31 113
97 47 79 17
89 7 107 37
41 103 23 73


Сейчас пытаюсь найти наименьший пандиагональный 5х5 из простых (любых: последовательных или произвольных).
Последний раз редактировалось omega 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
Pavlovsky
Сообщений: 1377
Зарегистрирован: 30 июл 2006, 21:00

Числа Смита

Сообщение Pavlovsky » 27 апр 2010, 11:47

omega писал(а):Source of the post
есть последовательность в OEIS - A173981 констант MK 4-го порядка из последовательных простых; ни один из этих квадратов не имеет пандиагонального; надо искать дальше).


A где вы брали простые числа больше миллиарда?
Последний раз редактировалось Pavlovsky 29 ноя 2019, 18:03, всего редактировалось 1 раз.
Причина: test


Вернуться в «Алгебра и теория чисел»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 12 гостей