2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 68, 69, 70, 71, 72, 73, 74 ... 192  След.
 
 Re: Магические квадраты
Сообщение31.10.2009, 04:40 
Аватара пользователя


14/08/09
1140
Ничего не запускал ещё. С чего Вы решили?
За ликбез Спасибо.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение31.10.2009, 04:44 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Mathusic в сообщении #256890 писал(а):
Ничего не запускал ещё. С чего Вы решили?

Я ничего не решила :) Просто сделала предположение и высказала его вслух.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение31.10.2009, 13:23 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Новый эксперимент по изложенному выше алгоритму.
Взяла тот же самый массив, из которого построен известный магический квадрат 6-го порядка из смитов. Далее сделала программку генерации из этого массива тех самых наборов по 4 строки, которые должны "готовиться" по алгоритму на первом и втором этапах, но эта программка генерирует их случайным образом. Генерирую порцию из 360 таких наборов. Вот начало файла, в который программа записывает эти наборы из 4-х строк:

Код:
682897  22  3004402  2326  20542  1446574
1446178  682681  21262  2362  94  3004186
20506  562  1822  1446934  682177  3004762
1446142  3003898  21226  681817  778  2902
3004618  2362  1446142  21262  681817  562
1446574  3004186  682177  778  1822  21226
22  682609  20974  3004402  1446178  2578
682681  20362  3004762  2326  94  1446538
382  3003898  1446178  682897  20506  2902
3004402  2362  346  681817  1446574  21262
94  682609  20362  3004186  1446934  2578
3004762  682177  778  1446538  1966  20542
22  2362  682681  21226  1446574  3003898
778  1446178  20974  682609  1822  3004402
2326  382  3004762  1446538  20362  682393
94  3004186  1446142  682177  2902  21262
1446178  682609  3004762  20542  94  2578
3004402  382  21226  1446574  2362  681817
346  20362  1446934  682897  2326  3003898
3004186  562  1446538  21262  682393  1822
. . . . . . . . . . . . . . . . . . . . . . . . .

Получаю массив А(1440,6). Далее ввожу этот массив из 360 наборов по 4 строки в программу последнего этапа своего алгоритма. Программа проверяет 360 наборов в одну секунду.
360 наборов программа генерирует за 30 минут. Вероятность того, что среди них будет хотя бы два одинаковых набора, ничтожно мала.
Однако чтобы получить такой набор, который достроится до магического квадрата, надо сгенерировать не одну такую порцию из 360 наборов, а порций 500, например. И среди этих 500*360 наборов может всё-таки не оказаться нужного набора. Это - как выиграть в лотерею.
По идее же алгоритма на первом и втором этапах должны быть получены все возможные наборы из 4-х строк. Кто может посчитать, сколько их будет, если из данного массива генерируется 833 строки, состоящие из 6 чисел, так что сумма чисел в каждой строке равна магической константе квадрата?
Далее продолжаю эксперимент: искусственно вставляю в полученный массив из 360 наборов нужный набор из 4-х строк. Снова загоняю весь массив из 360 наборов в программу последнего этапа. Тут всё как надо: программа сразу выдаёт магический квадрат.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение31.10.2009, 18:45 
Аватара пользователя


26/09/09
95
Today I started to code the new program, but I see that (due to the high number of data structure to use), I need to make it more object oriented. The other programs are in c++, but are coded in traditional mode.
So it is the case for me to create many objects and rewrite the $pms$ programs to use these new object that will be shared onto future programs.
I know that this will increase the time to make the new program for order 6 of Smith, but all future programs to write will be more easy to code with the new structure.
Sorry for my perfectionism in coding, but this is my job and hobby, so I want to have always something good coded :)
I hope to have all programs rewritten for end of next week and then code the new program.

-- Sat Oct 31, 2009 17:52:38 --

The latest source code of programs (before I started this conversion) is here
http://digilander.iol.it/ice00/download/pms_new4.zip:

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение01.11.2009, 03:53 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
ice00
Насколько я смогла понять ваше сообщение, вы хотите сделать программу так, чтобы она могла быть в дальнейшем применена и для построения квадратов других порядков, а не только порядка 6. Так?
Я уже говорила, что сделать программу по этому алгоритму для построения квадрата порядка 5 намного проще, чем для квадрата порядка 6. А вот как будет для порядков больших 6, пока не могу сказать. Первый и третий этапы, конечно, могут быть выполнены и для таких порядков. Вся сложность будет со вторым этапом, потому что количество наборов из $n-2$ строк будет очень большим.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 07:29 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Занялась поиском вариантов наименьших магических квадратов из простых чисел.
Как я уже говорила, сначала формировала массивы подбором, без программы. Для некоторых порядков и подбором удалось найти несколько вариантов массива. Понятно, что каждый вариант массива даёт нам оригинальный магический квадрат. Приведу пример квадрата порядка 9.
Ранее мной были найдены два варианта массива. Берётся массив первых 81 простых чисел (начинаем с числа 3): 3, 5, …, 419, 421. Затем производятся замены одного или двух (а, может быть, даже трёх) чисел так, чтобы сумма чисел полученного массива была равна 1731*9=15579, $1731$ – это минимальная магическая константа квадрата 9-го порядка из простых чисел. Подбором я нашла только два варианта массива:

1. заменить число 389 на число 433;
2. заменить число 419 на число 463.

Недавно составила простенькую программку для формирования массива. Суть её такова. Для квадрата порядка $n$ первые n^2-6 простых чисел берутся фиксированные, а остальные 6 чисел варьируются, причём для варьирования берутся ещё следующие 6 чисел, то есть 6 чисел выбираются из 12. Понятно, что эта программа не может найти все варианты. Так, например, приведённый выше второй вариант для квадрата порядка 9 не находится этой программой. Программу можно составить с более высокой точностью поиска, для этого надо увеличить количество варьируемых чисел, но тогда она будет намного дольше работать. А моя программка работает очень быстро. Тем не менее, по этой программе я нашла много дополнительных вариантов, которые ранее не были найдены путём подбора. Продолжу варианты для квадрата порядка 9, которые нашлись по программе:

3. заменить числа 401 и 419 на числа 431 и 433;
4. заменить числа 409 и 419 на числа 433 и 439;
5. заменить числа 409 и 421 на числа 431 и 443.

Таким образом, найдено три новых варианта. Далее приведена таблица вариантов массива для квадратов порядков 6 – 35; в первой колонке количество вариантов массива, найденных ранее подбором, во второй колонке – количество вариантов массива, найденных по программе.

Код:
n = 6  1  1
n = 7  2  2
n = 8  1  1
n = 9  2  5
n = 10  2  2
n = 11  1  2
n = 12  1  1
n = 13  2  2
n = 14  1  5
n = 15  1  1
n = 16  1  1
n = 17  1  9
n = 18  1  1
n = 19  1  1
n = 20  1  1
n = 21  1  3
n = 22  1  4
n = 23  1  1
n = 24  1  1
n = 25  1  5
n = 26  2  2
n = 27  2  8
n = 28  1  1
n = 29  4  4
n = 30  1  1
n = 31  2  2
n = 32  1  4
n = 33  1  1
n = 34  1  1
n = 35  1  1


Теперь по программам ice00 собираюсь построить все варианты наименьших магических квадратов из простых чисел. Таблицу вариантов, конечно, надо продолжить для следующих порядков. Буду благодарна всем, кто найдёт дополнительные варианты массивов в приведённой таблице.
Точно так же надо найти все варианты массивов для наименьших магических квадратов из простых чисел и числа 1. Например, для квадрата порядка 13 этой группы даже подбором было найдено 6 вариантов массива.
***
Одна мысль по поводу алгоритма построения наименьшего квадрата из последовательных смитов 5 и 6 порядков. В программу можно добавить блок нахождения потенциальных массивов, то есть программа будет находить потенциальные массивы и проверять их на предмет построения из данного массива магического квадрата. Тогда не придётся вводить в программу массивы из внешнего файла.
Можно составить также программу определения потенциальных массивов и для произвольных смитов, аналогичную только что описанной. Но, как я уже сказала, чтобы добиться в этом случае нахождения всех потенциальных массивов, программу надо составлять с большим интервалом варьирования чисел. Для массива из последовательных чисел всё намного проще.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 08:01 


17/10/09
26
Цитата:
Уважаемые участники! Большая просьба: напишите, как поняли алгоритм, как оцениваете его эффективность и возможности для реализации. Спасибо.





По моему, если этот алгоритм реализовать, то эффект будет отменным.
Помните, я как то вам говорил о "корневых" строках, подразумевающих неиспользование перестановки чисел. То есть, допустим у нас есть строка 1-2-3-4, следовательно нам ненужно искать такие строки, как 4-3-2-1 или 3-2-4-1 и тому подобных, так как перестановкой чисел мы будем заниматься на соответствующем этапе. Такой способ заметно сократит количество как самих строк, так и количество комбинаций строк, собранных по-четыре.
Но, возможно, я зря все это пишу и вы в своем алгоритме подразумеваете именно такой способ нахождения строк?

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 08:57 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
dezdlisa в сообщении #257461 писал(а):
Но, возможно, я зря все это пишу и вы в своем алгоритме подразумеваете именно такой способ нахождения строк?

Да, разумеется.
Спасибо за комментарий к алгоритму. Вы первый (кроме ice00), кто высказался об алгоритме.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 14:04 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Начала делать варианты наименьших магических квадратов из простых чисел. Уже сделала до порядка 14 включительно. Кстати, именно на этом порядке сейчас заканчивается последовательность А164843 в OEIS. Хотя я уже отправила результаты до порядка 31 включительно, но они пока не внесены в Энциклопедию.
Варианты квадратов до порядка 14 можно посмотреть здесь.
Для квадрата 17-го порядка дополнительно к 9 вариантам, найденным по программе, нашла ещё 4 варианта подбором. Итого этот квадрат имеет 13 вариантов массива. Сейчас буду строить магические квадраты для всех вариантов. Ранее у меня был построен квадрат только для одного варианта. Значит, ещё 12 дополнительных оригинальных квадратов будет.
Нельзя ли уменьшить магическую константу квадрата порядка 17? Моя программа упорно выдаёт минимальную константу $14807$, а минимально возможная теоретически $14803$. Но у меня никак не формируется массив ни для $14803$, ни для $14805$.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 20:52 


17/10/09
26
Цитата:
Кто может посчитать, сколько их будет, если из данного массива генерируется 833 строки, состоящие из 6 чисел, так что сумма чисел в каждой строке равна магической константе квадрата?

таких вариантов строк по четыре будет примерно столько:
574545090*832.
просто компа нет чтоб вывести целое значение, а калькулятор на кпк выдает значение с 10 в н-ной степени. Это с учетом всех перестановок горизонтальных строк, если нам такой учет не нужен, то делим результат на 24.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 21:22 
Модератор
Аватара пользователя


11/01/06
5660
Nataly-Mak в сообщении #257538 писал(а):
Нельзя ли уменьшить магическую константу квадрата порядка 17? Моя программа упорно выдаёт минимальную константу $14807$, а минимально возможная теоретически $14803$. Но у меня никак не формируется массив ни для $14803$, ни для $14805$.

Все верно. Минимальная константа, для которой существует массив, в этом случае равна $14807$.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение02.11.2009, 21:59 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
maxal в сообщении #257714 писал(а):
Все верно. Минимальная константа, для которой существует массив, в этом случае равна $14807$.

Спасибо!
***
dezdlisa
Скажите, а вы получили из 833 строк все оригинальные наборы, состоящие из 4-х строк? Сколько у вас получается таких наборов? Оригинальным набором я называю такой набор, в котором все числа в строках следуют в порядке возрастания и два набора, отличающиеся переставленными строками, не считаются различными.
Теперь представим, что нам надо получить все возможные варианты из одного оригинального набора, состоящего из 4-х строк. Если переставить 4 строки, это 24 варианта. Это тоже нужно. Но ещё надо переставить все числа в строках. Вот тут получается огромное количество вариантов: 720^4. Но зато тогда мы будем иметь абсолютно все варианты наборов по 4 строки. Так вот, если мы на первом этапе получим $n$ оригинальных наборов по 4 строки, то всего вариантов таких наборов на втором этапе мы должны получить: n*24*720^4. Я правильно посчитала?
Можно, конечно, преобразовывать наборы из 4-х строк другим способом, более лёгким, например, перестановка всех строк и столбцов; это даст всего 17280 вариантов. Но это не даст полного решения. Магического квадрата может не оказаться среди таких вариантов наборов, даже если такой квадрат существует из данного массива чисел.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение03.11.2009, 08:19 


17/10/09
26
Цитата:
Скажите, а вы получили из 833 строк все оригинальные наборы, состоящие из 4-х строк?

Если все 833 строки являются оригинальными, то есть числа расположены по возрастанию, то количество оригинальных наборов будет
$833*832*831*830/24$
Если оригинальных строк Н, то формула следующая для набора по четыре строки: $Н(Н-1)(Н-2)(Н-3)/24$

-- Вт ноя 03, 2009 09:28:28 --

Цитата:
Так вот, если мы на первом этапе получим оригинальных наборов по 4 строки, то всего вариантов таких наборов на втором этапе мы должны получить: . Я правильно посчитала?

Я не проверил, но на первый взгляд формула кажется верной, это мы найдем все варианты наборов строк с учетом перестановки чисел и перестановки строк.
да, верно, вы правильно посчистали.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение03.11.2009, 10:25 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
dezdlisa в сообщении #257812 писал(а):
Если все 833 строки являются оригинальными, то есть числа расположены по возрастанию, то количество оригинальных наборов будет
$833*832*831*830/24$
Если оригинальных строк Н, то формула следующая для набора по четыре строки: $Н(Н-1)(Н-2)(Н-3)/24$

Да, я получила из приведённого в примере массива 833 оригинальные строки, числа в каждой строке следуют в порядке возрастания и дают в сумме магическую константу.
Далее, как мне кажется, вы неправильно посчитали, сколько из этих 833 строк можно получить различных (с точностью до перестановок строк) наборов по 4 строки. Не забывайте, что все числа в каждом наборе из 4-х строк должны быть различные. И потому таких наборов будет гораздо меньше, чем вы насчитали. Моя программа сгенерировала всего 340 таких наборов. Я проверила наборы. К сожалению, есть пропущенные наборы. Вижу, где прокол в моей программе (почему она пропускает наборы), но не стала корректировать программу - нет смысла. Ну, получу я все наборы из 4-х строк, а преобразовать-то их всё равно не смогу на Бейсике. Но их всё же будет намного меньше, чем вы насчитали. Мне кажется, что их будет даже меньше 833. И более того: количество этих наборов вряд ли можно вычислить по какой-то формуле, его можно определить только практически.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение03.11.2009, 10:39 


17/10/09
26
Совершенно верно, я ошибся, забыл что в строках повторяются числа. Посчитал так, как будто строки все различные, не имеющие одинаковых элементов. Надо будет подумать и над такой формулой, чтоб учитывала и такой фактор повторения чисел. Жена не дает мне подумать, мы сейчас в отпуске, уехали отдыхать.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2871 ]  На страницу Пред.  1 ... 68, 69, 70, 71, 72, 73, 74 ... 192  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group