2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 53, 54, 55, 56, 57, 58, 59 ... 192  След.
 
 Re: Магические квадраты
Сообщение28.09.2009, 12:20 
Аватара пользователя


26/09/09
95
For the one in forum that can handle c++ programs, you can download the program from:
http://digilander.libero.it/ice00/magic ... p_new2.zip

You need to have a gcc compiler (that is default in Linux, in Windows you must use http://www.mingw.org/ or http://www.cygwin.com/: all are free for use)

Then you need to take an header for the order you want to check, for example: pms27_79.h for order 27.
You have to modify that source by replace the sequence of numbers
Код:
PRIME[ORDER*ORDER]={

with your sequence of number and the
Код:
MAGIC=

with the magic constant to search.

Then you have to compile it. If yuo are not able to modify a Makefile, just use a command like this:

Код:
c++ -Dmacro='"./pms27_79.h"' ./pms.cpp -o ./pms12


all this if you are in the same directory where the main file pms.cpp (the core of program) is present.

Then, just run the program with
Код:
./pms12

for gettin the result.

Adding order not already present is a little more difficult, and need you are a programmer (you need to modify some macro definitions in header)

p.s.
this night I will go to search for the sequence you give, if no one in forum are able to make the programs run

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


22/03/08

7154
Саратов
ice00
Как я догадываюсь, вы рассказываете, что нужно сделать для того, чтобы скомпилировать программу (не стала переводить данное сообщение в Google, в нём много кодов). Благадарю вас. Возможно, эта информация будет полезна другим участникам форума. Для меня же она мало что даёт. У меня большие проблемы с языком. Именно поэтому я просила нескольких товарищей объяснить мне это по-русски. Но увы!..
Вот, например, пошла я по этой ссылке:
http://www.cygwin.com/
И там нашла только английский текст; разумеется, мне ничего непонятно...
Поэтому я в отчаянии и бросаю эту затею. Буду пользоваться только своими программами. Это намного лучше :)

-- Пн сен 28, 2009 16:03:28 --

Мной получен ещё один квадрат для последовательности А164843 (это наименьшие магические квадраты из простых чисел в классическом определении):
Код:
5 17 193 211 263 307 617 677 701 811 839 1193 1223 1307 1367
1291 727 223 1061 1423 293 887 1231 421 379 311 23 419 389 653
1063 1013 673 11 139 1009 1303 907 373 967 569 1093 331 53 227
1319 751 467 37 199 1301 41 587 317 1381 1201 433 797 821 79
401 1051 349 1277 613 1039 443 173 947 1049 241 1129 359 509 151
503 827 787 29 269 739 1399 1087 149 281 691 541 1097 761 571
337 127 1429 643 977 941 101 1327 1409 131 631 109 167 719 683
59 641 491 1279 1109 1163 593 773 563 457 73 883 277 601 769
823 863 43 757 283 107 1213 1153 853 911 233 383 709 103 1297
809 599 313 1229 577 257 19 557 353 367 937 1021 859 881 953
1361 67 1289 3 829 439 857 607 1103 13 1171 733 163 983 113
1117 1321 97 431 1259 479 997 71 521 397 523 347 929 971 271
7 647 1217 1283 179 1123 463 89 743 1249 1237 191 1033 31 239
137 61 1091 449 1151 487 251 83 659 1181 197 991 181 1373 1439
499 1019 1069 1031 461 47 547 409 619 157 877 661 1187 229 919

Магическая константа квадрата равна $9731$.
Итак, квадраты 15-го порядка построены во всех трёх последовательностях. Сейчас попробую свою программу для квадрата 16-го порядка, авось, получится. Квадрата порядка 16 нет только в последовательности А164843, то есть в этой самой, для которой я сейчас построила квадрат 15-го порядка. Если не получится, оставлю эту работу для ice00. Он по своим программам эти квадраты мигом построит.

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


26/09/09
95
Nataly-Mak в сообщении #247068 писал(а):
n = 19, S=$21373$, массив: 1, 3, ..., 2437, но заменить число 2423 на 2459 и число 2437 на 2441.


here one 19 order:

Код:
887  1373 1481 641  643  2311 457  1399 773  67   1483 593  997  1999 1091 2459 587  139  1993
257  1777 1171 367  37   11   1433 89   1669 1931 1567 1733 61   929  107  2063 1619 2399 2153
2179 1531 2161 1621 619  743  1873 653  787  1187 659  499  431  1499 199  23   1979 2381 349
263  1163 193  1613 911  2017 2267 1361 2003 73   521  127  1741 191  2111 727  307  1487 2297
1301 353  557  709  223  1889 1439 1867 509  1549 859  1237 443  2141 1423 829  2377 1181 487
523  1049 1877 17   2129 419  1907 2143 1627 1063 1699 1637 1277 853  1861 251  47   941  53
2099 719  1019 661  857  163  2347 2341 569  1997 59   29   2087 1789 1409 2011 83   1021 113
463  2027 631  1933 1193 2333 241  433  2131 331  449  907  1087 283  1283 971  1453 1753 1471
2029 1151 1031 617  7    1489 2089 1451 541  967  389  1367 181  701  271  1759 1913 2039 1381
991  1657 227  2287 2213 109  1523 1511 809  179  751  337  347  1871 2417 1097 577  131  2339
1583 2053 797  2083 1123 479  1297 229  1319 71   821  1783 1723 1153 1109 647  839  1327 937
1493 3    1949 1709 2393 151  1061 1667 401  1259 1117 953  2281 79   757  1231 1693 1039 137
761  311  1201 13   1033 1447 1321 379  1553 1831 5    1823 1811 281  2269 1787 863  547  2137
811  2237 1429 239  2239 461  677  1051 2207 1973 1879 2357 1609 1013 43   421  197  157  373
277  1307 977  397  2081 2069 1    173  409  691  2293 607  1223 1103 1559 601  1289 2203 2113
1543 1427 1901 233  167  1951 19   1571 823  1597 439  1303 2251 983  1129 683  2441 313  599
1987 769  571  1607 1291 733  101  383  2221 947  2273 883  673  1663 1009 1213 1747 739  563
1459 317  503  2383 1601 1721 41   1093 103  2411 2309 2371 269  491  1229 2389 293  359  31
467  149  1697 2243 613  877  1279 1579 919  1249 1801 827  881  2351 97   211  1069 1217 1847

Total Working Time:             0.018   seconds
So in a second I can build:     55.5556 squares



Цитата:
n = 20, S = $25394$, массив: 1, 3, ..., 2741, но заменить число 2741 на 2797


here an order 20:

Код:
1493 2111 719  1367 2543 823  2411 479  197  139  2351 157  1873 43   1879 1621 5    1811 1039 2333
613  3    277  1871 1657 1453 1997 821  2677 1481 1823 547  2099 2179 67   2473 19   1973 271  1093
2729 1783 1429 211  73   2467 311  2341 1951 191  1409 7    1283 37   2797 1049 2671 911  173  1571
653  2591 659  619  2309 1607 2003 661  641  1249 787  2161 83   2251 487  1033 1297 1753 1579 971
683  727  379  2447 449  1471 2027 1693 257  1103 1109 569  101  1627 1669 1373 2069 2113 2311 1217
137  739  401  1663 61   2377 929  1013 2129 953  283  1601 907  2659 1801 2281 443  2017 1069 1931
1301 2609 397  1787 1667 2393 2347 193  2221 853  2687 47   431  491  607  2699 1193 79   1129 263
521  467  151  389  41   1051 2399 1117 1847 2029 1913 2437 1907 1549 2633 239  97   1741 1889 977
563  859  167  631  2131 2267 439  2521 587  883  419  601  557  2141 2549 1303 307  1543 2689 2237
1999 937  2143 877  1229 2269 983  827  2683 1483 1697 2137 179  673  127  1583 2087 1019 349  113
1901 2357 1061 2063 1637 29   809  1009 421  2539 541  617  2531 347  773  131  1867 2213 2441 107
2011 1723 2243 1213 1151 509  1553 2293 1499 2389 373  359  163  2551 1319 269  1489 1231 89   967
2503 2381 1291 1759 317  947  941  1531 1613 1459 2383 811  1567 1    1949 1223 1451 223  691  353
1237 1979 2153 1031 863  1187 709  337  1777 1123 181  643  593  1447 2617 1439 1259 839  1993 1987
463  677  2713 1789 457  1279 1733 103  409  2707 233  2207 2039 199  571  2647 1321 109  1181 2557
1021 1153 2287 701  1087 13   1831 919  743  2203 2339 2731 1091 331  1559 251  1747 1063 1327 997
887  503  2423 383  1699 227  857  2239 1307 17   1427 2693 769  2417 761  1289 1487 23   2053 1933
797  281  1861 1619 2579 1361 991  1277 1523 499  1381 1609 2081 1709 523  229  1171 2719 433  751
2371 313  367  1097 2711 1423 71   1399 881  2083 461  2297 2663 149  59   1433 2657 293  2089 577
1511 1201 2273 1877 733  241  53   2621 31   11   1597 1163 2477 2593 647  829  757  1721 599  2459

Total Working Time:             0.018   seconds
So in a second I can build:     55.5556 squares



-- Mon Sep 28, 2009 19:09:54 --

Цитата:
n = 21, S = $29873$, массив: 1, 3, ..., 3083, но заменить число 3079 на число 3119.


here order 21:

Код:
1327 1901 3083 631  439  1973 1997 7    2099 829  2791 311  1291 1549 2221 2549 1213 181  2083 167  1231
2467 1913 401  2647 2341 433  3061 197  587  29   337  127  1229 1409 3119 1277 2473 1451 2143 479  1753
839  769  953  47   2287 1627 1831 2311 1789 2777 739  1993 2213 857  821  2153 719  457  1427 2843 421
2963 109  643  2689 1699 409  1531 1811 1181 2111 1193 1709 1297 877  2543 23   1361 2339 229  1867 1289
2377 2273 5    97   2243 137  751  139  2333 1049 1283 2969 1949 103  2267 2909 2897 239  2971 823  59
1559 1877 1847 499  1103 2351 2903 2029 71   179  919  2617 1571 379  53   317  2657 2803 1669 1823 647
2953 1579 1151 3001 2309 281  487  2371 991  2447 659  2137 101  1583 1399 929  1097 3    683  2693 1019
3023 673  257  883  2203 1873 577  1163 653  937  2729 2269 1021 2251 2851 1117 43   2879 881  157  1433
691  1933 2749 1201 1013 1471 1423 541  1307 947  389  1931 1373 1063 2659 2683 677  1223 2621 359  1619
353  1613 331  2857 383  2699 2003 1091 1061 1039 2539 709  2939 2753 241  809  701  2837 263  523  2129
1697 997  1601 2767 367  73   1609 967  2087 613  149  1663 797  1637 3041 1499 1999 1031 1319 2437 1523
2389 733  509  2477 2237 1367 2459 277  547  1187 1381 1093 2741 1667 727  1429 1693 463  811  853  2833
1907 607  2069 1721 1567 2591 1511 2161 1109 2399 307  443  1069 1621 619  293  1301 2887 1153 2141 397
31   2801 1759 223  761  941  2789 193  2089 2357 2281 977  2131 2441 1321 1879 1303 1889 17   827  863
1597 1237 2677 1553 2027 557  2917 11   1279 1543 3011 907  19   61   191  2663 757  2113 1801 571  2381
593  37   1951 2797 1777 2719 449  2011 2731 467  503  2557 887  521  431  1087 2207 2609 983  773  1783
79   251  2999 113  2551 2347 617  2927 2239 661  2417 347  2687 2521 2423 563  1733 1259 269  599  271
1483 2713 1787 173  1249 911  151  2957 1657 3049 233  1    1747 2039 419  1447 2383 601  2671 1459 743
373  2053 1871 971  107  1171 89   2861 1607 41   1489 1129 1741 2063 1979 83   1009 2411 1051 3067 2707
313  1723 1217 1033 641  1123 491  1987 2293 2633 3037 1481 787  2017 199  1453 211  131  2531 2393 2179
859  2081 13   1493 569  2819 227  1861 163  2579 1487 2503 283  461  349  2711 1439 67   2297 3019 2593

Total Working Time:             0.161   seconds
So in a second I can build:     6.21118 squares


Цитата:
n = 23, S = $40511$, массив: 1, 3, ..., 3803, но заменить число 3797 на 3847 и число 3803 на 3821


and finally order 23:

Код:
1847 617  593  1531 2503 1229 503  3191 2593 229  2857 563  3109 1543 479  2689 2917 2633 1873 821  3527 2087 577
1567 3373 1499 1117 787  1901 2113 3571 47   827  1787 1579 2687 1951 1777 1871 2411 853  1907 3469 1949 1451 17
2137 109  2273 2099 1213 167  367  701  641  1427 419  2707 953  2683 2267 3449 2731 1091 2801 2377 3389 1301 3209
173  3167 599  2243 2887 199  1289 113  3313 3491 3583 661  1697 3041 2347 2851 1831 157  677  631  461  2663 2437
2971 1163 2753 1051 2879 1033 1327 2657 2383 1913 569  3461 1447 211  601  509  1291 3511 3257 1361 1559 181  2423
3769 1021 2767 1009 59   61   2281 1621 3061 2063 2417 2711 1619 1879 2957 937  2003 2239 67   811  137  3533 1489
1129 3467 439  53   2269 389  3319 3181 647  31   463  2729 1931 1123 2311 269  2719 2287 977  3691 1669 1597 3821
1201 283  3067 1709 3617 809  2081 1231 2141 1759 1583 3253 163  2447 1249 127  2677 1861 2357 571  991  2473 2861
547  1019 373  1013 733  3163 1747 3229 3671 193  3089 727  2699 353  2749 523  2341 1181 997  3079 3187 197  3701
3457 19   769  2389 1999 2039 2549 179  1663 1889 2309 619  967  2953 3559 1319 3613 3221 691  7    2069 499  1733
3557 3023 1381 2381 337  271  823  2617 3517 313  607  1187 421  797  2393 97   883  1627 2089 2531 2969 2897 3793
89   2999 317  2789 1789 3659 1979 1693 773  227  1549 1571 1307 3463 1151 3391 857  983  2539 151  3739 3413 83
241  2053 2837 557  2903 1459 673  2713 1097 3847 383  2791 1373 587  3733 1453 2927 449  3083 1753 257  1601 1741
863  653  2237 2459 2029 2477 3593 1039 3547 1    1609 2621 1867 2441 443  1637 347  971  1483 2939 2557 1667 1031
907  1973 2693 331  149  2153 911  307  2333 2819 1259 3301 131  103  2351 3299 3779 277  71   2741 1223 3727 3673
191  101  541  1237 3581 2521 2777 79   1553 3251 719  2297 2963 2293 751  3643 233  3203 2909 761  1877 3001 29
37   1303 1997 2591 1321 2843 1933 3529 1613 3539 2203 1109 1801 3623 1439 2221 379  1423 2011 139  311  2659 487
2797 947  739  2027 1511 1399 2143 281  1657 239  349  1433 3271 397  359  3407 1723 3331 929  3637 3119 1493 3323
3361 2803 2131 1061 3761 3329 1523 1429 3    1987 3259 859  1471 2251 659  1087 13   3307 1153 3019 919  1103 23
3697 3767 2111 3719 2161 1171 3347 1217 1193 3037 1811 1487 41   491  3541 877  1823 887  1783 107  709  251  1283
3631 2339 2179 3217 1297 2671 223  1093 293  2467 1607 1367 3011 2017 1277 3049 5    1063 3709 829  433  2213 521
643  941  2609 2207 43   2399 467  1481 2371 2833 2647 1069 2083 3121 1279 757  457  3343 3137 3677 881  73   1993
1699 3371 3607 1721 683  3169 2543 3359 401  2129 3433 409  3499 743  839  1049 2551 613  11   1409 2579 431  263

Total Working Time:             0.365   seconds
So in a second I can build:     2.73973 squares


p.s. there is more time to compile the program that having a result :)

-- Mon Sep 28, 2009 20:25:23 --

ice00 в сообщении #247010 писал(а):
However now the sequence must be:
4440084513, 258, 313, 484, 797, 2016, 2211, 2862, 4507, 6188, 6325, 9660, 12669, 13016, 16857, 19530, 23069, 28184, 38761, 46302, 42515, 49846, 59087, 70260, 73385, 78960, 97267

Now order 30, magic=98316 added to the sequence

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


11/01/06
5710
ice00 в сообщении #247110 писал(а):
For the one in forum that can handle c++ programs, you can download the program from:
http://digilander.libero.it/ice00/magic ... p_new2.zip

You need to have a gcc compiler (that is default in Linux, in Windows you must use http://www.mingw.org/ or http://www.cygwin.com/: all are free for use)

It would be helpful to provide compiled win32 binaries as well (for those who are not familiar with gcc/mingw/cygwin).

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


22/03/08

7154
Саратов
О! ice00, вы так много сделали для последовательности А073502.
На сегодня в этой последовательности содержатся магические константы для квадратов до порядка 14 включительно:
$111, 102, 213, 408, 699, 1114, 1681, 2416, 3355, 4514, 5937, 7626$.
Теперь мы уже имеем члены этой последовательности до порядка 23 включительно:
$111, 102, 213, 408, 699, 1114, 1681, 2416, 3355, 4514, 5937, 7626, 9635, 11986, 14691, 17818, 21373, 25394, 29873, 34926, 40511$.
Есть ли у вас желание продолжить эту последовательность? Я подготовлю данные для квадратов до порядка 30.
Поздравляю вас с успехами в последовательности А073520. Будете ли вы продолжать для квадратов порядков больше 30? У вас замечательно получается.
Я вчера попробовала построить квадрат 16-го порядка для последовательности А164843 по своей программе. У меня это не получилось. Программа хорошо работает, но вариантов в массиве чрезвычайно много и обработать их все QBASIC вряд ли сможет за разумное время. Поэтому мне придётся бросить этот эксперимент. Если вы хотите и эту последовательность продолжить до порядка 30, я могу подготовить данные. Впрочем, конечно, вы и сами можете эти данные вычислить (как и для последовательности А073502).
maxal, как я поняла ваше сообщение (в переводе Google), вы предлагаете обеспечить скомпилированные исполняемые программы. Но исходных модулей очень много (порядки 12, 14, 15, 16 и т. д.). В каждом исходном коде надо вставлять свои данные (массив простых чисел, из которых будет составляться квадрат, и магическую константу квадрата), а уже затем компилировать. Свои данные - это СВОИ данные. Например, я уже вставила в один из таких исходных кодов свои данные (для квадрата порядка 18). Но скомпилировать программу не умею. По незнанию языка мне сложно даже подготовить соответствующее программное обеспечение для этого. Думаю, что заинтересованные в таких программах участники форума, знающие английский язык, смогут сами выполнять компиляцию. Автору мы должны сказать большое спасибо за любезно предоставленный дистрибутив.
Возможно, я что-то не так поняла из вашего сообщения, но это опять по незнанию языка.

-- Вт сен 29, 2009 09:42:45 --

В подтверждение работы моей программы для построения квадрата 16-го порядка могу привести полумагический квадрат, в котором нет магической суммы только в одной диагонали. Когда я изменила в программе условие равенства диагональных сумм магической константе и потребовала только сумму в одной диагонали, квадрат построился мгновенно. Вот этот квадрат:

Код:
3 29 83 271 457 491 523 641 829 883 1087 1171 1289 1409 1433 1489
1019 1327 107 503 113 269 73 593 439 1129 397 1049 1597 1091 1453 929
1033 631 797 1613 937 293 823 7 911 499 163 839 283 1361 1291 607
619 179 227 331 967 1097 541 367 643 379 971 23 1549 1069 1567 1559
1187 1459 1063 1051 1283 787 1151 223 109 257 251 757 151 389 1093 877
1493 229 53 1231 1031 1181 61 991 443 1553 1423 1021 233 383 569 193
359 1229 1223 1487 1201 479 509 577 1109 653 547 983 601 853 181 97
17 1579 1483 313 521 1471 1213 919 277 433 1193 1307 401 71 139 751
857 263 661 199 67 761 211 719 1259 683 1321 421 461 1319 1279 1607
79 733 1429 1249 317 47 1009 11 1531 311 1601 997 1061 953 197 563
1237 239 127 31 1627 743 1451 1543 89 1499 1277 281 13 677 37 1217
59 599 1583 881 1447 701 1381 571 1301 307 241 373 827 647 613 557
1367 947 103 449 467 1303 587 1637 1123 977 157 709 859 101 1297 5
1571 1039 349 941 617 1619 1511 691 821 739 463 1103 431 19 43 131
419 1439 1427 811 149 673 907 1481 1163 773 659 191 809 347 487 353
769 167 1373 727 887 173 137 1117 41 1013 337 863 1523 1399 409 1153

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

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


26/09/09
95
Цитата:
It would be helpful to provide compiled win32 binaries as well (for those who are not familiar with gcc / mingw / cygwin).

I use only Linux from 1999, so it not possible to make a Windows executable by me.

Цитата:
as I understood your message (translated as Google), you propose to ensure compiled executables. Но исходных модулей очень много (порядки 12, 14, 15, 16 и т. д.). But the initial modules are very much (about 12, 14, 15, 16, etc.). В каждом исходном коде надо вставлять свои данные (массив простых чисел, из которых будет составляться квадрат, и магическую константу квадрата), а уже затем компилировать. In each source code necessary to insert their data (an array of prime numbers, which will be included square, and the magic constant of the square), and then to compile. Свои данные - это СВОИ данные. Their data - it is their data.

Yes, this is true. The program is not general but it is based onto the data and order it has to calculate a magic square, so it must be compiled each time for generating a different kind of magic square.

Цитата:
In support of my program to build a square 16-th order can lead polumagichesky square, in which there is no magic amount only in one diagonal. Когда я изменила в программе условие равенства диагональных сумм магической константе и потребовала только сумму в одной диагонали, квадрат построился мгновенно. When I changed the program a condition of equality of the diagonal sums of magic numbers and demanded only the amount of one diagonal, the square was built immediately


This is just a suggestion for Nataly about making her QBASIC programs to run more quickly.
I see in my tests that making the diagonal magic is the most complicated task, as it can changes the row and column magic state. But this is not the problem: if you have the diagonal in magic state, you can going after to make rows and columns magic, uising the condition to not changes the diagonal state.
Before this observation, making the diagonal magic was a time consuming task (ours or calculation), but with this simple rules, it goes to a fraction of a second.

Цитата:
Do you have a desire to continue this sequence? I will prepare the data for the squares up to order 30,


If you have the sequence I can go on with it

Цитата:
I congratulate you on your success in the sequence A073520. Will you continue to order more than 30 squares? You get great.

Thanks. I will go on until I reach the max order the program can generate a square (so I can look if it can reach the hypothetical 64 max order).

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


22/03/08

7154
Саратов
Цитата:

This is just a suggestion for Nataly about making her QBASIC programs to run more quickly.
I see in my tests that making the diagonal magic is the most complicated task, as it can changes the row and column magic state. But this is not the problem: if you have the diagonal in magic state, you can going after to make rows and columns magic, uising the condition to not changes the diagonal state.
Before this observation, making the diagonal magic was a time consuming task (ours or calculation), but with this simple rules, it goes to a fraction of a second.

Возможно, вы меня не совсем правильно поняли. Я хочу сказать, что моя программа мгновенно находит полумагический квадрат даже с магической суммой в одной диагонали, а вот магический квадрат по этой программе надо искать очень долго. У меня такой алгоритм, что сначала составляется полумагический квадрат, то есть составляются правильные строки и столбцы (суммы чисел в строках и в столбцах равны магической константе), а уже потом полумагический квадрат превращается в магический, то есть правильно составляются диагонали без изменения наборов чисел в строках и в столбцах.

Я вычислила несколько минимальных констант и сформировала массивы для квадратов порядков 24 - 27 для последовательности А073502. Вы можете воспользоваться этими данными и составить магические квадраты.
n = $24$, S = $46664$, массив 1, 3, ..., 4211, но заменить число 4211 на 4261.
n = $25$, S = $53445$, массив 1, 3, ..., 4637, но...
Для этого случая массив можно сформировать разными способами, я нашла 4 варианта:
1) заменить число 4637 на 4673; 2) заменить число 4621 на 4657; 3) заменить число 4603 на 4639; 4) заменить число 4637 на 4643 и число 4621 на 4651.
Из каждого варианта массива получится оригинальный магический квадрат.
n = $26$, S = $60896$, массив 1, 3, ..., 5051, но ...
Для этого случая я нашла два варианта массива: 1) заменить число 5051 на число 5107; 2) заменить число 5039 на число 5059 и число 5051 на число 5087.
n = $27$, S = $69045$, массив 1, 3, ..., 5519, но заменить число 5503 на 5527 и число 5519 на 5521.
Дальше пока не сформировала массивы, возможные минимальные магические константы вычислила до порядка 30 включительно.

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


11/01/06
5710
ice00 в сообщении #247405 писал(а):
I use only Linux from 1999, so it not possible to make a Windows executable by me.

mingw32 works fine under linux and produces win32 executables.
ice00 в сообщении #247405 писал(а):
Yes, this is true. The program is not general but it is based onto the data and order it has to calculate a magic square, so it must be compiled each time for generating a different kind of magic square.

As I understand, it should not be a big problem to make all variable data come as an input (e.g., from an external file) to the program.

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


26/09/09
95
maxal в [url=http://dxdy.ru/post247528.html#p247528] писал(а):
mingw32 works fine under linux and produces win32 executables.

If so, I can try it

Цитата:
As I understand, it should not be a big problem to make all variable data come as an input (e.g., from an external file) to the program.


Yes, this is true. In fact my porpoise was to build an automatic program that do this and generate the subprograms, but all stay as it is due to missing free time for that task :(

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


22/03/08

7154
Саратов
Цитата:
As I understand, it should not be a big problem to make all variable data come as an input (e.g., from an external file) to the program.

Мне тоже показалось, что этот момент в программном коде, с которым я работала, не совсем хорош: что надо вводить вручную массив чисел, из которых будет составляться квадрат. Я, конечно, не знаю тот язык программирования, на котором составлена программа. Но думаю, что в любом языке есть такая команда, как ввод данных из внешнего файла. Я в своих программах никогда не ввожу массив вручную, а всегда загружаю его из файла. Так исключается вероятность ошибок при вводе данных. У меня есть два больших файла, в которых записаны простые числа и числа Смита. Я из этих файлов выбираю нужную мне в каждом конкретном случае часть массива, копирую эту часть в другой файл и из этого файла уже ввожу массив в программу.

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


26/09/09
95
For having Mingw running in Linux I have to make some script installation/configuration (I just see now waht to do). Only in weekeden I could get time for this.

There are no problems to read sequence from a file, the problem is that it must be produced (by compilation) a program for each order (for example) 10, 11, 12, 13...30. My goal was instead to have one program that manage all orders (but I don't find jet an elegant coding strategy for this).

However, for output of result it is not necessary to make an output file management inside the program. It needs only to use redirection of I/O stdio e stderr in console:
example:
Код:
program >result.txt 2>error.txt

it will produce result.txt file output of squares and error.txt file output of error messages. This is already available into the source code.

However all this could be ready at least for next weekend (or the other one)

-- Tue Sep 29, 2009 22:29:59 --

Nataly-Mak в сообщении #247464 писал(а):
n = $24$, S = $46664$, массив 1, 3, ..., 4211, но заменить число 4211 на 4261.


This night only time for making the 24 order:

Код:
3313 2029 1123 3061 17   2671 2243 347  3929 197  2579 1553 1483 1663 1039 1951 4013 2281 271  479  3209 3529 1307 2377
2963 2503 2521 2833 113  149  127  1033 3371 3673 659  2663 1531 1433 2729 3637 3877 1993 491  1163 1627 2789 2749 37
2131 449  3373 587  439  3881 683  3947 673  2297 2269 4177 2179 977  1783 13   1721 1453 3323 2081 967  2741 3943 577
3907 983  547  709  397  3307 1367 2111 3889 1867 2609 761  1877 2657 4021 2251 3329 3121 911  79   1031 2239 1607 1087
3221 3911 2053 877  2903 193  2591 2693 1801 1289 1153 1579 3677 3001 1093 4027 53   1811 1511 4153 499  131  1327 1117
2389 3109 3389 1907 1571 3467 4129 2677 3541 1621 71   503  953  3719 191  3163 29   389  4001 1427 7    3559 283  569
3779 2339 109  2213 3727 101  1381 11   1597 2083 1871 467  4079 2909 3259 1499 1913 353  2087 631  3271 757  3539 2689
2411 2857 827  947  47   4073 1097 3607 853  3769 1103 97   1009 1667 3257 151  2089 3119 619  3191 317  3079 3617 2861
461  373  1439 1451 2897 739  2311 773  1613 2423 4049 83   1999 1787 1321 1493 3019 2767 4133 1303 2063 2473 2917 2777
173  3623 1823 2687 3217 4007 3631 2011 3343 2791 3803 257  2699 239  1319 2221 821  1259 1091 647  1049 2621 1021 311
1979 1777 1409 443  839  107  1997 1601 1657 1481 463  1949 3767 1879 2539 401  3613 2797 1693 2153 3733 2399 4127 1861
2683 3739 2953 331  2927 2447 3011 2843 3761 251  2293 2971 2803 1637 157  179  2381 1583 3331 2633 733  199  751  67
2957 677  3301 3823 4099 2711 1279 1873 1061 3527 1447 907  457  349  1847 3049 701  3137 1523 3851 2137 823  359  769
811  2203 1051 3457 89   23   383  3547 2351 2437 743  1697 2039 3469 2713 61   1459 2617 4051 4159 2099 617  431  4157
3463 2441 137  2557 613  103  1301 2551 1069 419  1789 43   3967 1889 73   571  3853 1231 2819 1487 3923 3821 3461 3083
1277 599  1741 3557 2969 3701 2837 1171 521  2543 4003 1229 2129 601  269  1181 661  2357 3917 3593 1733 859  883  2333
641  2531 3253 857  1759 1237 3391 1931 1399 919  1213 2999 1373 2113 3863 3533 607  997  1151 1747 937  2477 2027 3709
787  1249 2237 487  3643 2017 2069 2593 233  829  2273 3691 281  2207 1217 1361 3581 4261 1567 2141 1129 3041 1063 2707
557  3251 1709 3833 2801 2887 1933 4139 139  163  433  3067 3023 2003 223  4091 3167 643  1201 2267 3299 653  971  211
41   1699 313  3793 2341 3203 1559 2309 3433 3583 3797 3089 59   4201 3931 1901 293  167  1831 307  337  277  3187 1013
1549 2161 1723 2659 1973 1291 887  31   1471 2143 4093 3989 1    2371 1429 3511 2287 1987 509  3671 1609 719  1187 3413
809  541  3407 421  3361 2459 523  1619 1489 1193 991  2393 1543 2347 3919 2549 3    2753 3571 409  3449 367  2851 3697
3499 929  2879 5    563  593  3517 1019 3229 4057 2731 3319 2939 263  2719 379  2467 941  181  1423 3659 4111 19   1223
863  691  3347 3169 3359 1297 2417 227  241  1109 229  3181 797  1283 1753 3491 727  2647 881  1669 3847 2383 3037 4019

Total Working Time:             0.171   seconds
So in a second I can build:     5.84795 squares


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


22/03/08

7154
Саратов
ice00
Вы волшебник! Из любого заказанного мной массива у вас сразу готов магический квадрат. Разумеется, вы не должны спешить :)
Сделаете постепенно, как вам позволит ваше свободное время.
Ваша идея сделать общую программу для построения квадратов любых порядков из простых чисел грандиозна. Но нет ничего невозможного! У меня есть несколько таких программ (написанных на QBASIC), которые строят магические квадраты какого-то вида (идеальные, совершенные) для любого порядка, достаточно ввести в программу порядок квадрата и моментально получается магический квадрат.

Вот покажу программу первого этапа моего алгоритма построения нетрадиционного квадрата. На этом этапе генерируется набор из $n$ строк ($n$ - порядок квадрата) так, что сумма чисел в каждой строке равна магической константе квадрата. В программу достаточно ввести порядок квадрата. При этом, конечно, предварительно надо сформировать массив чисел, из кторых будет составляться квадрат, и поместить его в файл МК2.txt. Магическая константа квадрата вычисляется в программе, она полностью определяется порядком квадрата и массивом чисел. Сгенерированный набор строк выводится в файл МК6.txt.

Код:
5 PRINT "VVEDITE PORJADOK KVADRATA": INPUT Z
7 W = Z * Z
10 DIM P(W), A(Z, Z), B(W), C(Z), D(Z)
15 OPEN "MK2.txt" FOR INPUT AS #1
20 FOR I = 1 TO W: INPUT #1, P(I): NEXT I
22 CLOSE #1
24 S2 = 0
26 FOR I = 1 TO W: S2 = S2 + P(I): NEXT I
28 S1 = S2 / Z
30 OPEN "MK6.txt" FOR OUTPUT AS #1
32 RANDOMIZE TIMER
35 V = 1
40 FOR I = 1 TO Z
45 K = INT(RND * W + 1)
50 IF K > W THEN 45
55 IF P(K) = 0 THEN 45
60 A(V, I) = P(K): D(I) = K
65 NEXT I
67 FOR T = 1 TO Z: C(T) = A(V, T): NEXT T
69 FOR X = 1 TO Z
71 FOR Y = 1 TO Z
73 IF Y = X THEN 80
74 IF C(X) = C(Y) THEN 40
80 NEXT Y
82 NEXT X
170 S = 0
175 FOR N = 1 TO Z: S = S + A(V, N): NEXT N
180 IF S <> S1 THEN 40
189 FOR T = 1 TO Z: PRINT A(V, T); : NEXT T
190 PRINT
191 FOR T = 1 TO Z: P(D(T)) = 0: NEXT T
195 V = V + 1
200 IF V > Z - 1 THEN 210
205 GOTO 40
210 FOR X = 1 TO Z - 1
215 FOR Y = 1 TO Z
220 PRINT #1, A(X, Y);
225 NEXT Y
230 PRINT #1,
235 NEXT X
237 FOR T = 1 TO W
240 IF P(T) > 0 THEN PRINT #1, P(T);
242 NEXT T
300 END

Этот этап выполлняется быстро до порядка 15 включительно. Сгенерирован и набор из 16 строк, но следующие этапы моего алгоритма для этого порядка не привели к результату.
Я попыталась построить магический квадрат порядка 10 из последовательных чисел Смита. Массив: 378, ..., 2839. По приведённой программе сгенерирован такой набор строк:
Код:
378  663  762  1255  1626  1795  1962  2173  2484  2583
1952  2475  1894  913  1736  922  852  645  1678  2614
654  1165  2067  2785  1872  2227  636  627  2366  1282
1219  2038  728  1581  1842  1908  915  861  2434  2155
1755  526  958  1642  2605  2286  2839  535  1449  1086
576  2079  2182  382  2265  1966  517  2576  729  2409
2679  1858  2515  588  2722  1507  648  706  825  1633
  391  1921  562  2578  2688  1376  2326  2751  454  634
438  2373  1903  2461  1935  1881  778  666  690  2556
483  895  985  1111  1284  1776  1822  2218  2362  2745

Выполенение следующего этапа - превращение этого набора в полумагический квадрат - выполняется успешно, получается много полумагических квадратов. Однако последний этап - превращение полумагического квадрата в магический - пока не выполнился ни разу. Есть надежда, что такой магический квадрат существует, но нельзя сказать это с полной уверенностью.

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


22/03/08

7154
Саратов
Я хотела открыть новую последовательность: магические константы наименьших квадратов из последовательных чисел Смита. Но эти смиты ужасно упрямы! Ничего с ними не получается. Если следовать примеру одной из последовательностей в OEIS, то новая последовательность будет выглядеть так: $4, 0, X, X, X, X, X, X, X, X, X, X, X, 35936$. Магический квадрат порядка 1 имеет магическую константу 4. Магического квадрата порядка 2 не существует, поэтому пишем 0. Далее идут пропуски до квадрата порядка 14, это единственный известный наименьший квадрат из последовательных смитов, он построен ice00.
Я сегодня решила посмотреть на подобные квадраты порядков 3 и 4. Для порядка 3 проверила 10 кандидатов и – ничего! Для порядка 4 проверила 30 вариантов. Приведу варианты, проверенные мной (для каждого порядка по 10 вариантов). Может быть, я в чём-то ошибаюсь, но квадраты такие по моей программе не строятся.

*** ORDER: 3 - FROM 7695 TO 7824 MAGIC = 23286
FROM 8545 TO 8790 MAGIC = 26040
FROM 9036 TO 9285 MAGIC = 27579
FROM 14422 TO 14688 MAGIC = 43602
FROM 17149 TO 17455 MAGIC = 51804
FROM 18247 TO 18409 MAGIC = 55011
FROM 19360 TO 19602 MAGIC = 58494
FROM 26302 TO 26480 MAGIC = 79191
FROM 28749 TO 28920 MAGIC = 86499
FROM 41926 TO 42214 MAGIC = 126189

*** ORDER: 4 - FROM 58 TO 454 MAGIC= 1082
FROM 274 TO 588 MAGIC= 1781
FROM 346 TO 634 MAGIC= 1948
FROM 378 TO 645 MAGIC= 2093
FROM 526 TO 728 MAGIC= 2521
FROM 729 TO 1219 MAGIC= 3744
FROM 825 TO 1284 MAGIC= 4132
FROM 861 TO 1449 MAGIC= 4419
FROM 913 TO 1581 MAGIC= 4752
FROM 1165 TO 1776 MAGIC= 5991

Если исходить из того, что наименьший магический квадрат 4-го порядка из смитов имеет константу 1195, то первый кандидат (с константой 1082) отпадает автоматически.
Попробовала я построить и подобные магические квадраты для порядков 8 и 10. Проверила по одному варианту для каждого порядка. Получила только полумагические квадраты. Но в этом случае моя программа выполнена не полностью и вполне возможно, что квадраты существуют.
Приглашаю всех подключиться к решению этой очень непростой задачи. В последовательности всего 11 пропусков. Восполним :D
ice00, а что "говорят" ваши программы для подобных квадратов порядков 3 - 13? Вы ещё не пытались построить такие квадраты?

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


26/09/09
95
Цитата:
ice00, а что "говорят" ваши программы для подобных квадратов порядков 3 - 13? Вы ещё не пытались построить такие квадраты?

No, I did't try to find that kind of square for order < 13.
I just take one order and produce a square.
I'm sure that you can find in easy mode from order 7 to 13 and from 15 to xx (with xx a high order) this kind of square using my program.
Maybe you can find even for order 5 and 6, but this will be probably more difficult for my program

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


22/03/08

7154
Саратов
Я уже говорила, что не умею пользоваться вашими программами :)
Буду ждать, когда вы сделаете исполняемые программы. Я вам уже заказала такую программу для построения квадрата порядка 10. Впрочем, вы сами можете построить все эти квадраты по своим программам. По моим программам квадраты из чисел Смита не строятся быстро, а долго ждать мне не хочется. Квадраты из простых чисел строились довольно быстро (до порядка 15).
Я возвращаюсь к своей недописанной статье "Наименьшие магические квадраты из простых чисел".

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2876 ]  На страницу Пред.  1 ... 53, 54, 55, 56, 57, 58, 59 ... 192  След.

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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