2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 129, 130, 131, 132, 133, 134, 135 ... 192  След.
 
 Re: Магические квадраты
Сообщение09.09.2010, 20:15 
Аватара пользователя


20/01/10
766
Нижний Новгород
buba987 в сообщении #350863 писал(а):
Какие магические суммы запускать? Есть хотя бы предположения?
Предположительно, $S=486$ это самая маленькая, на этой сумме программа и испытывалась. Далее, опыт показывает, прибавляйте к этой сумме по 12. Например для 498 пока не было квадратов, но должны быть. Сейчас попробовал для $S=522$ с набором $p=-72, 24, 12, -18$ , полный перебор дал 53 квадрата.

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


07/09/10

12
Для 498 я даю раздичные наборы p , кратные 6. Но прога срывается сразу. Что это означает? Есть ли ограничения на четверку чисел?

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


22/03/08

7154
Саратов
svb
замечательный алгоритм и отличная реализация!
Интерфейс в программе тоже прекрасный.
Вот, например, нашла за 5 минут:

Код:
17 151  73   5 103 173
11 163 167 113  37  31
139   7  19  79 181  97
199  71  43 127  23  59
67 101 137 157  47  13
89  29  83  41 131 149
  1: S=522  p2,4,6,8=0 -6 6 -36
17 151  73   5 103 173
89  29  83  41 131 149
67 101 137 157  47  13
199  71  43 127  23  59
139   7  19  79 181  97
11 163 167 113  37  31
  2: S=522  p2,4,6,8=0 -6 6 -36
31 101  89   5 103 193
151  19 139 173  29  11
97  59  61 131  47 127
199  71  23 113  73  43
  7 109 157  17 191  41
37 163  53  83  79 107
  3: S=522  p2,4,6,8=0 -6 6 -36
31 101  89   5 103 193
37 163  53  83  79 107
  7 109 157  17 191  41
199  71  23 113  73  43
97  59  61 131  47 127
151  19 139 173  29  11
  4: S=522  p2,4,6,8=0 -6 6 -36

Это не все решения, программу прервала.

Одно малюсенькое замечание: опять нет проверки для $n$ комплектов отклонений :-) Как вы себе представляете выполнение программы, скажем, для 300 комплектов отклонений?
Каждый раз записать во входной файл новый комплект отклонений и запустить программу. И так 300 раз. Я уже несколько комплектов попробовала для магической константы 498; эта константа капризничает, возможно, для неё вообще квадрата не существует.
Для всех проверенных комплектов программа сразу выскочила в Винду (для магической константы 498).
А комплектов отклонений, вы ведь знаете, может быть несколько тысяч.
Ну, вот, например:

(Оффтоп)

0 -6 6 -36
0 -6 6 36
0 -6 6 -42
0 -6 6 42
0 -6 6 -48
0 -6 6 48
0 -6 6 -54
0 -6 6 54
0 -6 6 -60
0 -6 6 60
0 -6 6 -66
0 -6 6 66
0 -6 6 -72

78 0 66 -6 -72 6 6 72 -6
-72 0 -84 -6 78 6 6 -78 -6
84 0 72 -6 -78 6 6 78 -6
-78 0 -90 -6 84 6 6 -84 -6
90 0 78 -6 -84 6 6 84 -6
-84 0 -96 -6 90 6 6 -90 -6
96 0 84 -6 -90 6 6 90 -6
-90 0 -102 -6 96 6 6 -96 -6
102 0 90 -6 -96 6 6 96 -6
-96 0 -108 -6 102 6 6 -102 -6
108 0 96 -6 -102 6 6 102 -6
-102 0 -114 -6 108 6 6 -108 -6
114 0 102 -6 -108 6 6 108 -6
-108 0 -120 -6 114 6 6 -114 -6
120 0 108 -6 -114 6 6 114 -6
-114 0 -126 -6 120 6 6 -120 -6
126 0 114 -6 -120 6 6 120 -6
-120 0 -132 -6 126 6 6 -126 -6
132 0 120 -6 -126 6 6 126 -6
-126 0 -138 -6 132 6 6 -132 -6
138 0 126 -6 -132 6 6 132 -6
-132 0 -144 -6 138 6 6 -138 -6
144 0 132 -6 -138 6 6 138 -6
-138 0 -150 -6 144 6 6 -144 -6
150 0 138 -6 -144 6 6 144 -6
-144 0 -156 -6 150 6 6 -150 -6
156 0 144 -6 -150 6 6 150 -6
6 0 -6 -6 0 6 6 0 -6
-6 0 0 -6 12 -12 -12 6 -6
0 0 6 -6 6 -12 -12 12 -6
-30 0 -24 -6 36 -12 -12 -18 -6
6 0 12 -6 0 -12 -12 18 -6
-36 0 -30 -6 42 -12 -12 -24 -6
12 0 18 -6 -6 -12 -12 24 -6
-42 0 -36 -6 48 -12 -12 -30 -6
18 0 24 -6 -12 -12 -12 30 -6
-48 0 -42 -6 54 -12 -12 -36 -6
24 0 30 -6 -18 -12 -12 36 -6
. . . . . . . . . . .

Это найдено по моей программе, я специально сделала так, чтобы все отклонения были кратны 6. Первые комплекты я уже урезала до 4-х базовых отклонений и примерно штук 6 проверила (проверенные комплекты уже удалены). Для магической константы 522 квадраты найдены для одного из проверенных комплектов отклонений.

А если брать произвольные отклонения (что ведь тоже возможно), то комплектов будет в $n$ раз больше.

Что надо сделать, чтобы программа была годная для экспериментов? Понятно, что надо во входной файл записывать не один комплект отклонений, а сразу порцию, скажем штук 200-300. И для всех этих комплектов чтобы программа сразу выполняла проверку. Можно так сделать?

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


20/01/10
766
Нижний Новгород
Nataly-Mak в сообщении #350934 писал(а):
Одно малюсенькое замечание: опять нет проверки для $n$ комплектов отклонений :-) Как вы себе представляете выполнение программы, скажем, для 300 комплектов отклонений?
Внимательно слушаю и наматываю на ус :-)

1. Выполнять программу по списку отклонений очень просто, запуская ее из внешней программы с использованием следующего механизма, который существует в любом языке:
Код:
{$M $4000,0,0 }
uses Dos;
var f:text;
begin
  <цикл>
  assign(f,'Alg_p9.txt');rewrite(f);
  write(f,-84,' ',18,' ',12,' ',-24);close(f);
  Exec('Alg_p9.exe','');
  <конец цикла>
end.

Постараюсь нечто подобное сегодня выложить. Программа, которая только что работала сутками, вряд ли нуждается в том, чтобы внутри ее организовывать циклы.

2. Хуже другое. Вчера попробовал ее на смитах, но ... Она заточена на "побитие рекорда" квадрата с простыми числами и имеет внутреннее ограничение: числа <300. Убрал ввод этого параметра, который был в программе perebor2, только для упрощения интерфейса и сразу же напоролся на это ограничение. У себя то я это легко исправил - работает и со смитами :-)

3. Входные списки чисел. Сейчас имя этого файла: prime.txt, что нехорошо для других наборов. Ведь и смитами мы не собираемся ограничиваться. Вводить имя файла каждый раз в программе? Очень неудобно, также как и использование списка параметров, которое долгое время раньше использовалось. А в Windows7, с которой я возился последние дни, даже bat-файлы не могу запускать. Часто редко изменяемые параметры засовывают в ini-файлы. Но во что выродилась эта первоначально великолепная идея? У большинства современных программ они настолько усложнились, что лучше к ним не прикасаться. Появились уродцы типа скриптовых языков, фактически обслуживающий интерфейс. Ввод через меню просто организуется, мне это решение больше нравится, но при большом количестве параметров, которые хочется иметь возможность менять, и этот путь может вызвать серьезные проблемы. Попробуйте "настроить" какой нибудь UnigraphiCS, да даже тот же WinWord?

4. По поводу параметров $p$. Изменение "наугад", это только в начале можно делать. Я на смитах попробовал, ничего хорошего. Для того, чтобы программа сразу не вылетала, пришлось из имеющегося квадрата 8340 просто срисовать параметры $360, 0, 0, -360$, тогда она лихо заработала. Ясно, что без статистики сумм пар и делать нечего. Но и этого мало. Надо решать задачу подбора параметров $p$ отдельно. Надо думать и пробовать различные алгоритмы, чем, наверное, и займусь в ближайшее время.

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


22/03/08

7154
Саратов
О! Вы так много тут написали, я сразу всё не усвою :-)

Давайте по порядку.

1. Сейчас попробовала программу для смитов (конечно, во входной файл prime.txt записала массив смитов). Убедилась, что она не хочет работать, даже когда я срисовала комплект отклонений для вашего квадрата с магической константой 8340. Это у вас она лихо заработала, потому что вы что-то изменили в программе. Пока у меня только программа для простых чисел.

2. Протестировала программу с комплектом отклонений для известного пандиагонального квадрата из последовательных простых чисел с магической константой 930 (у этого квадрата не все отклонения кратны 6). Квадратов выдаётся море, вот первые:

Код:
13   7  11 281 271 347
223 251 257  73  19 107
193 157 233 149  31 167
43   5  23 283 337 239
307 241 227  17 109  29
151 269 179 127 163  41
  1: S=930  p2,4,6,8=34 -70 -24 10
13   7  11 281 271 347
223 251 179  73 103 101
193 241 227 149  31  89
43   5  23 283 337 239
307 157 233  17 109 107
151 269 257 127  79  47
  2: S=930  p2,4,6,8=34 -70 -24 10

Это ещё раз подтверждает, что отклонения могут быть какими угодно, только для простых чисел всегда чётными. При этом посмотрела на статистику, количества пар для этого комплекта отклонений тоже очень хорошие, есть даже по 22 пары.

3. По-моему, вместо того, чтобы организовывать какой-то внешний цикл для ввода отклонений, проще записывать их во входном файле, а программа пусть их берёт из входного файла. Этот путь всем хорошо известен и опробован.
Цикл внутри программы по списку отклонений - это же элементарный цикл, который никак не влияет на работу программы, независимо оттого, сколько она будет работать 5 минут или 5 часов. Обработала один комплект отклонений, перешла к другому. Ничего сложного на мой взгляд здесь нет.

4. Что и для чего вы мне рекомендуете настроить, увы, не поняла :-(

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


20/01/10
766
Нижний Новгород
Лучшее - враг хорошего.

Сейчас попробую исправить явные огрехи, чтобы можно было работать с другими массивами чисел. А насчет "опробованных" и "хорошо известных" путей могу заметить, что, например, использование параметров при запуске программы является фактическим стандартом, но вот Вы их очень не любите. Вам по душе "входные" файлы, но ... большинство из тех программ (и итальянца, и др.), которые Вы рекомендовали я даже запустить не мог. Даже элементарного help-а нет! А ведь это минимальное требование, ну хотя бы стандартный readme выкладывали бы. Про "ничего сложного". Сложного, действительно, нет, но ... если программа зависает из-за какого нибудь дефекта во входном файле без каких либо сообщений, то это верх непрофессионализма. Мне однажды один возмущенный пользователь написал, что все написал правильно, а моя программа врет - оказалось, что в обычный текстовый файл он умудрился вписать длинную строку из более 1000 пустых символов, в конце которой стояла ";" обрабатываемая программой и нарушающая входной синтаксис, о чем программа честно сообщала. Он, естественно, этот знак не заметил. Избежать подобных ошибок очень сложно, но стремиться к этому надо - вот и "усложняется" текст программы за счет всевозможных проверок. Конечно, в предложенной программе много недочетов - не того было. Еще не проверены типы данных, нет проверки входных данных и т.д. и т.п.

Но минимум постараюсь сделать, т.ч. сильно не пинайте :-)

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


22/03/08

7154
Саратов
svb писал(а):
...могу заметить, что, например, использование параметров при запуске программы является фактическим стандартом, но вот Вы их очень не любите. Вам по душе "входные" файлы

Вы, по-моему, путаете понятия "параметры программы" и "входные данные". Это, на мой хотя и давно прошлый профессиональный взгляд, совершенно разные вещи. Параметров не может быть тысяча и более штук, их может быть, ну, максимум 5-10. А входных данных может быть очень много и тут уж да "мне по душе входные файлы". А как иначе их можно ввести в программу?
И вопрос не в том, есть или нет входной файл. Он у вас ведь есть! Но дело в том, что у вас программа обрабатывает только один комплект отклонений.

Впрочем, что я опять всё растолковываю. Мне, вообще говоря, всё это и не нужно. Но вы выкладываете программы зачем? Как я понимаю, чтобы кто-то из участников, ну я, например, приняли участие в их тестировании и экспериментах. Так вот, я заметила, что в таком виде, как сейчас, программа не пригодна для экспериментов, в которых должны быть задействованы многотысячные массивы данных.
Вы же в ответ говорите, что мне надо что-то настроить, что у меня что-то не работает или мне чего-то не хватает. В пределах, нужных для моих программ, у меня всё работает и мне всего хватает.

По поводу программ итальянца. В этом топике была подробная инструкция, переведённая по просьбе ice00 с английского maxal'ем. Этой инструкции даже мне оказалось вполне достаточно, чтобы запустить все его программы. Кстати, в его программах есть несколько параметров, все они вводятся в командной строке (например, номер метода, количество квадратов, которое мы хотим построить, имя входного и выходного файла). Мне кажется, у него очень удобные программы. И этот момент, кстати, тоже был, когда я попросила его сделать обработку сразу целого массива квадратов, а не одного. Он сразу это сделал (это когда мы из полумагических квадратов получали магические).

Цитата:
Но минимум постараюсь сделать, т.ч. сильно не пинайте :-)

Если это только для меня, то нет никакой необходимости. Я могу обойтись и без ваших программ, так как сама умею их писать.

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


20/01/10
766
Нижний Новгород
Nataly-Mak в сообщении #350991 писал(а):
Вы, по-моему, путаете понятия "параметры программы" и "входные данные". Это, на мой хотя и давно прошлый профессиональный взгляд, совершенно разные вещи.
Спасибо за разъяснение :-)

Цитата:
И вопрос не в том, есть или нет входной файл. Он у вас ведь есть! Но дело в том, что у вас программа обрабатывает только один комплект отклонений.
Сейчас пытался вставить обработку списков, но ... не смотря на "простоту решения" напоролся на неприятности - из-за рекурсивности основной части программы прерывание ее работы сделано простейшим способом с помощью halt.

Цитата:
Мне, вообще говоря, всё это и не нужно. Но вы выкладываете программы зачем? Как я понимаю, чтобы кто-то из участников, ну я, например, приняли участие в их тестировании и экспериментах.
была слабая надежда на получение ордена :-)

Цитата:
Если это только для меня, то нет никакой необходимости. Я могу обойтись и без ваших программ, так как сама умею их писать.
да я в этом уже давно не сомневаюсь - "ни одно доброе дело не должно остаться безнаказанным".

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


22/03/08

7154
Саратов
svb в сообщении #351002 писал(а):
Nataly-Mak в сообщении #350991 писал(а):
Вы, по-моему, путаете понятия "параметры программы" и "входные данные". Это, на мой хотя и давно прошлый профессиональный взгляд, совершенно разные вещи.
Спасибо за разъяснение :-)

Пожалуйста!
Цитата:
Сейчас пытался вставить обработку списков, но ... не смотря на "простоту решения" напоролся на неприятности - из-за рекурсивности основной части программы прерывание ее работы сделано простейшим способом с помощью halt.

Так я же уже сказала: не надо ничего вставлять.
Но вот только я не представляю: вы сами-то как будете обрабатывать сотни комплектов отклонений? Неужели по одному будете вводить? :-)
Цитата:
была слабая надежда на получение ордена :-)

Тогда прошу прощения - не поняла. По глупости подумала, что вы предлагаете потестировать программу и поискать новые решения, то есть поэкспериментировать.
А орденов здесь не выдают :-)

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение10.09.2010, 15:03 
Заблокирован


07/09/10

12
Да, я согласен. Нельз наобум набивать 4 коэффициента p. Перебор нужен автоматический. Я запарился туда-сюда мышку тыкать. А толк нулевой. Это для суммы 498.

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


20/01/10
766
Нижний Новгород
Доработанная версия программы для поиска пандиагональных квадратов 6 порядка
http://svb.hut.ru/DOWN/alg_p9.rar
Теперь добавлен более информативный ручной ввод параметров $p$, добавлен файл со смитами, можно использовать и другие наборы чисел. Введена работа со списком параметров. Более подробно о работе программы можно прочитать в файле readme. Прилагаются рабочие примеры.

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


22/03/08

7154
Саратов
Первое пришедшее в голову решение проблемы.

Сделала программу случайной генерации комплекта отклонений - GENO.EXE.
Программа генерирует комплект и записывает его в файл ALG_P9.TXT.
Далее делаю пакетный файл:

Код:
GENO.EXE
ALG_P9.EXE
GENO.EXE
ALG_P9.EXE
GENO.EXE
ALG_P9.EXE
. . . . . .

Можно выполнять много раз программу и при этом ничего не вводить, кроме, конечно, магической константы в программе ALG_P9.EXE.
(если бы магическую константу не надо было вводить в этой программе, то пакетный файл вообще выполнялся бы автоматом - для одной и той же магической константы; а уж раз есть входной файл, то почему бы и магическую константу в него не записать?)

Запускаю этот пакетный файл. Для магических констант 486 и 522 квадраты находятся с ходу - при первом же выполнении программы ALG_P9.EXE (это при совершенно случайных отклонениях!). Например:

Код:
5  79  47 163 179  13
61 149  89  17 103  67
83  97 101  23  43 139
29   7 107 127  59 157
109  41 131 137  31  37
199 113  11  19  71  73
  1: S=486  p2,4,6,8=-24 36 -36 6

13  47 181  11 131 139
  7 193  31 127  97  67
83 163  29  73  37 137
157  19  23 167 151   5
113  41 179 101  17  71
149  59  79  43  89 103
  1: S=522  p2,4,6,8=24 -66 -72 78

А вот с магической константой 498 туго. Выполнила программу раз 50 уже и квадрата не нашла.
Теперь просто спортивный интерес возник: существует или нет пандиагональный квадрат с магической константой 498?
Кто первый решит эту задачу, тому пирожок :-)

Начала писать свою программу, основанную на 4-х базовых отклонениях. Почти закончила. Опробовала полуфабрикат (программа уже находит 32 числа), опять же для магических констант 522 или 630 программа находит 32 числа почти сразу, а для магической константы 498 не хочет находить.

 Профиль  
                  
 
 Re: Магические квадраты
Сообщение11.09.2010, 06:27 
Заблокирован


07/09/10

12
А зачем возиться с 498 если более лучший 486 получается? Плюнуть надо на 498!

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


22/03/08

7154
Саратов
Не хотите получить пирожок? :D

Я же сказала: спортивный интерес. Просто интересно, существует или нет пандиагональный квадрат с такой константой.

Кроме того, получится последовательность пандиагональных квадратов 6-го порядка из простых чисел с магическими константами: 486, 498, 510, 522, ... (дальше можно тоже проверить).
Для констант 486, 510 и 522 квадраты уже найдены. Осталась капризная константа 498.
У нас уже есть последовательности пандиагональных квадратов из простых чисел порядков 4 (я составила) и 5 (Pavlovsky составил). Вот будет и для порядка 6.

И наконец, это позволяет ещё раз протестировать программу, прежде чем пускаться работать со смитами.

Программу дописала и протестировала. Для магических констант 486 и 522 всё прекрасно: все 36 чисел находятся за приемлемое время. У меня в программе комплект отклонений генерируется случайным образом, затем проверяется, затем возврат на генерацию комплекта отклонений и т. д. Так что программа может крутиться без меня сколь угодно долго.
А я пойду завтракать и обед готовить :-)

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


22/03/08

7154
Саратов
Пока завтракала, программа проверила 175 случайно сгенерированных комплектов отклонений для магической константы 498. Пандиагональный квадрат не найден. При этом вероятность генерации хотя бы двух одинаковых комплектов отклонений ничтожно мала. Наблюдала за работой программы, один комплект отклонений обрабатывается от 5 до 40 секунд.
Вот такая попалась константа! Вполне возможно, что пандиагонального квадрата с такой константой вообще не существует.

Далее по программе svb и со случайной генерацией комплекта отклонений проверила константы 534, 546, 558, 570, 582 и 594. Для констант 558 и 594 пандиагональные квадраты нашлись сразу же для первого комплекта отклонений:

Код:
5  47  41 197  29 239
83 131 127 107  43  67
163  61 137  37  89  71
139  19  79  31 277  13
109 101 167  73  97  11
59 199   7 113  23 157
  1: S=558  p2,4,6,8=138 -30 -48 -102

11   7 151  61 293  71
269  97 167  43  13   5
53  41  59 103 109 229
113  73 157 211  23  17
47 149  31  37 137 193
101 227  29 139  19  79
  1: S=594  p2,4,6,8=-168 108 162 -138

А для других констант проверила по 10 комплектов отклонений, квадратов не найдено.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2871 ]  На страницу Пред.  1 ... 129, 130, 131, 132, 133, 134, 135 ... 192  След.

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



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

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


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

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