Message boards :
Cafe :
Задача века
Message board moderation
Previous · 1 . . . 3 · 4 · 5 · 6 · 7 · 8 · 9 . . . 13 · Next
Author | Message |
---|---|
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Да, генератор простых чисел primesieve сделан гениально! Жаль, что автор не пошёл дальше - за предел 2^64. Это было бы очень востребовано. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
На черепашке поехал скрипт на 15 интервалов. Кандидат с 10 "дырками" появился. Ахиллес-3 всё ещё обрабатывает 10 интервалов. Намного его черепашка обошла. Знайте черепашку! :) |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Скрипт на обработку 15 интервалов primesieve 539843669997700 539843719999000 --print >inp1.txt primesieve 539843719997700 539843769999000 --print >inp2.txt primesieve 539843769997700 539843819999000 --print >inp3.txt primesieve 539843819997700 539843869999000 --print >inp4.txt primesieve 539843869997700 539843919999000 --print >inp5.txt primesieve 539843919997700 539843969999000 --print >inp6.txt primesieve 539843969997700 539844019999000 --print >inp7.txt primesieve 539844019997700 539844069999000 --print >inp8.txt primesieve 539844069997700 539844119999000 --print >inp9.txt primesieve 539844119997700 539844169999000 --print >inp10.txt primesieve 539844169997700 539844219999000 --print >inp11.txt primesieve 539844219997700 539844269999000 --print >inp12.txt primesieve 539844269997700 539844319999000 --print >inp13.txt primesieve 539844319997700 539844369999000 --print >inp14.txt primesieve 539844369997700 539844419999000 --print >inp15.txt gp st4_1.txt gp st4_2.txt gp st4_3.txt gp st4_4.txt gp st4_5.txt gp st4_6.txt gp st4_7.txt gp st4_8.txt gp st4_9.txt gp st4_10.txt gp st4_11.txt gp st4_12.txt gp st4_13.txt gp st4_14.txt gp st4_15.txt pause Немножко нудно вносить интервалы в командные строки для primesieve. Как бы это автоматизировать? Ну вот, чтоб совсем ничего не делать ручками :) А ведь наверняка можно автоматизировать! И 15 командных строк для запуска gp тоже, наверное, можно записать компактно. Я видела нечто подобное в скриптах, которые писал Demis. Господа! Кто знает и умеет, пожалуйста, научите. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Написала письма Максу Алексееву, Ярославу Врублевскому и Andersen с приглашением подключаться к решению задачи века. Ярослав Врублевский отписался мгновенно :) Конечно, он не желает эту задачу решать, у него нет ни времени, ни возможностей (в смысле вычислительных ресурсов). Однако он не написал, что решение задачи найдено. Я его спрашивала: вдруг я просто не в курсе, за задачей давно не слежу. Но в OEIS не вижу пандиагонального квадрата 5-го порядка из последовательных простых чисел. Если бы нашли, в OEIS внесли бы. От Макса и Andersen ответ пока не получен. Помните, как пессимистически высказался Andersen о построении квадрата Стенли 5-го порядка из последовательных простых чисел? Но он говорил о 25-ах из последовательных простых чисел (точнее о их паттернах) с минимальным диаметром 156. Разумеется, с минимальным диаметром решение можно не найти 10 лет. Это сложно, да. Но с другим диаметром вполне может найтись решение! Это аналогично симметричной 19-ке из последовательных простых чисел. С минимальным диаметром 252 господин Петухов вовсю упирается :) И может упираться ещё лет 10 :) А с диаметром 588 19-ка найдена! Смотрите сообщение https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=12857 Правда, эту 19-ку искали 9 лет. Плохо искали! Если бы не остановили BOINC-проект Stop@home, давно нашли бы, ещё в 2018 году, в крайнем случае - в 2019. Stop@home остановили в декабре 2017 года; в 2019 году начался BOINC-проект TBEG; всё сначала, потому что все результаты с проекта Stop@home были потеряны. Три года работал TBEG, был в одном шаге от 19-ки и... тоже был остановлен (декабрь 2022). BOINC-проект SPT 19-ку нашёл, но... ни в какую деятели проекта не хотят подтвердить её минимальность! Нет, ребята, так не работают! Нет, ребята, всё не так, всё не так, ребята! (C) Владимир Высоцкий |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
На Ахиллесе-3 найден кандидат с 8 "дырками" 539844935697131, [0, 30, 240, 296, 548], [12, 18, 102, 138, 120, 150, 210, 86, 228, 98, 362, 0, 0, 0, 0, 0, 186, 0, 0, 0] Ура! Сейчас я его дострою. Достроила. Увы! "Дырок" меньше не стало. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Когда я работала на заводе программистом, мы все были рационализаторами и изобретателями :) Был даже специальный отдел, назывался он, кажется, БРИЗ. Сейчас тоже рационализирую :) Придумала, как очень быстро и не нудно формировать этот блок в скрипте primesieve 539847419997700 539847469999000 --print >inp1.txt primesieve 539847469997700 539847519999000 --print >inp2.txt primesieve 539847519997700 539847569999000 --print >inp3.txt primesieve 539847569997700 539847619999000 --print >inp4.txt primesieve 539847619997700 539847669999000 --print >inp5.txt primesieve 539847669997700 539847719999000 --print >inp6.txt primesieve 539847719997700 539847769999000 --print >inp7.txt primesieve 539847769997700 539847819999000 --print >inp8.txt primesieve 539847819997700 539847869999000 --print >inp9.txt primesieve 539847869997700 539847919999000 --print >inp10.txt primesieve 539847919997700 539847969999000 --print >inp11.txt primesieve 539847969997700 539848019999000 --print >inp12.txt primesieve 539848019997700 539848069999000 --print >inp13.txt primesieve 539848069997700 539848119999000 --print >inp14.txt primesieve 539848119997700 539848169999000 --print >inp15.txt primesieve 539848169997700 539848219999000 --print >inp16.txt primesieve 539848219997700 539848269999000 --print >inp17.txt primesieve 539848269997700 539848319999000 --print >inp18.txt primesieve 539848319997700 539848369999000 --print >inp19.txt primesieve 539848369997700 539848419999000 --print >inp20.txt Уже сделала скрипт на 20 порций и запустила и на черепашке, и на Ахиллесе-3. Теперь бы ещё научиться компактно записывать этот блок gp st4_1.txt gp st4_2.txt gp st4_3.txt gp st4_4.txt gp st4_5.txt gp st4_6.txt gp st4_7.txt gp st4_8.txt gp st4_9.txt gp st4_10.txt gp st4_11.txt gp st4_12.txt gp st4_13.txt gp st4_14.txt gp st4_15.txt gp st4_16.txt gp st4_17.txt gp st4_18.txt gp st4_19.txt gp st4_20.txt И чтобы не создавать каждый рабочий файл. Кажется, это как-то можно сделать. Тогда можно будет хоть на 100 порций сделать скрипт. Создавать 100 рабочих файлов не хочется. Ну, в принципе можно, конечно; это же всего один раз надо создать, а не в каждом скрипте создавать. Итак, жду новых кандидатов. Обрабатываются сразу 40 интервалов, по 50.000.000 каждый. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Кажется, я придумала, что делать с 20 рабочими файлами. Сделать надо всего один рабочий файл. Копировать очередной массив простых чисел из inpN.txt во входной файл inp.txt. Надо опробовать эту идею. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Идею опробовала, всё прекрасно работает. Это скрипт на 30 порций (немножко урезала) primesieve 539849919997700 539849969999000 --print >inp1.txt primesieve 539849969997700 539850019999000 --print >inp2.txt primesieve 539850019997700 539850069999000 --print >inp3.txt primesieve 539850069997700 539850119999000 --print >inp4.txt primesieve 539850119997700 539850169999000 --print >inp5.txt primesieve 539850169997700 539850219999000 --print >inp6.txt primesieve 539850219997700 539850269999000 --print >inp7.txt primesieve 539850269997700 539850319999000 --print >inp8.txt . . . . . . . primesieve 539851019997700 539851069999000 --print >inp23.txt primesieve 539851069997700 539851119999000 --print >inp24.txt primesieve 539851119997700 539851169999000 --print >inp25.txt primesieve 539851169997700 539851219999000 --print >inp26.txt primesieve 539851219997700 539851269999000 --print >inp27.txt primesieve 539851269997700 539851319999000 --print >inp28.txt primesieve 539851319997700 539851369999000 --print >inp29.txt primesieve 539851369997700 539851419999000 --print >inp30.txt copy inp1.txt inp.txt gp st4_1.txt copy inp2.txt inp.txt gp st4_1.txt copy inp3.txt inp.txt gp st4_1.txt copy inp4.txt inp.txt gp st4_1.txt copy inp5.txt inp.txt gp st4_1.txt . . . . . . . copy inp26.txt inp.txt gp st4_1.txt copy inp27.txt inp.txt gp st4_1.txt copy inp28.txt inp.txt gp st4_1.txt copy inp29.txt inp.txt gp st4_1.txt copy inp30.txt inp.txt gp st4_1.txt pause 30 порций уже обработались на черепашке, на Ахиллесе-3 ещё обрабатываются. Кандидатов пока не найдено. Как видите, рабочая программа теперь одна: st4_1.txt. Генерация простых чисел выполняется в 30 интервалах (длина одного интервала 50.000.000 натуральных чисел), каждый интервал - в свой файл. Блок для генерации простых чисел (командные строки для primesieve) формирую очень быстро с помощью Ворда. Следующий блок (командные строки для копирования и запуска обработки) не изменяется. Наверное, скрипт можно написать и получше, но меня пока устраивает моя конструкция. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
На Ахиллесе-3 30 порций обработались. Кандидат найден! Ура! [logfile is "st4_res.txt"] *** Warning: new stack size = 4294967296 (4096.000 Mbytes). 1473208 539850346205623, [0, 256, 294, 414, 648], [10, 246, 228, 66, 474, 76, 378, 36, 624, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] KANDIDAT 539850346205623, [0, 256, 294, 414, 648], [10, 246, 228, 66, 474, 76, 378, 36, 624, 46, 498, 0, 0, 0, 0, 0, 150, 0, 0, 0] Сначала выводится кандидат с 10 "дырками", а следом он же с 8 "дырками". Завтра я его дострою. Достроила. Количество "дырок" не уменьшилось. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Ещё один кандидат найден 539853955575313, [0, 106, 264, 340, 616], [36, 70, 54, 210, 124, 246, 276, 64, 346, 100, 418, 0, 0, 0, 0, 0, 198, 0, 0, 0] При достраивании получился квадрат Стенли с 7 "дырками" 0 36 54 276 418 70 106 124 346 *488 210 246 264 486 *628 64 100 *118 340 *482 198 *234 *252 *474 616 S = 1326 Паттерн 25-ки, из которой строился квадрат [0, 36, 54, 64, 70, 100, 106, 124, 150, 198, 210, 228, 246, 264, 276, 330, 334, 340, 346, 418, 484, 486, 564, 586, 616] Кандидатов пока очень мало. Всё лень написать программу окончательной проверки (достраивания) квадрата Стенли. Достраиваю вручную. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Цитата из сообщения https://boinc.progger.info/odlk/forum_thread.php?id=260&postid=12773 Из квадратов Павловского ____________________________ конец цитаты Это теоретические паттерны для квадрата Стенли 5х5. Один из паттернов от Andersen я уже тестировала своей программой предпроверки. Теперь тестирую этот паттерн от Павловского 0, 6, 18, 24, 28, 30, 34, 40, 46, 48, 54, 58, 60, 70, 84, 96, 114, 124, 126, 136, 144, 150, 154, 166, 180 Программа выдаёт следующие варианты кандидатов с 8 "дырками" [0, 24, 58, 136, 180], [6, 18, 30, 28, 48, 34, 96, 40, 114, 46, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 24, 58, 136, 180], [18, 6, 28, 30, 34, 48, 40, 96, 46, 114, 54, 0, 0, 0, 0, 0, 126, 0, 0, 0] [0, 24, 58, 136, 180], [18, 6, 28, 30, 34, 48, 40, 96, 46, 114, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 24, 70, 124, 180], [6, 18, 30, 40, 48, 46, 96, 28, 114, 34, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 34, 48, 136, 180], [6, 28, 30, 18, 58, 24, 96, 40, 124, 46, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 34, 70, 114, 180], [6, 28, 30, 40, 58, 46, 96, 18, 124, 24, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 46, 48, 124, 180], [6, 40, 30, 18, 70, 24, 96, 28, 136, 34, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] [0, 46, 58, 114, 180], [6, 40, 30, 28, 70, 34, 96, 18, 136, 24, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] Каждый из этих кандидатов можно достроить до квадрат Стенли 5х5; все эти квадраты Стенли превратятся в пандиагональные квадраты 5х5 с магической константой S = 398. Сейчас попробую достроить вручную первый кандидат [0, 24, 58, 136, 180], [6, 18, 30, 28, 48, 34, 96, 40, 114, 46, 126, 0, 0, 0, 0, 0, 54, 0, 0, 0] Готово! 0 6 30 96 126 18 24 48 114 144 28 34 58 124 154 40 46 70 136 166 54 60 84 150 180 Вы можете проверить достраивание остальных кандидатов. А ещё протестирую паттерн, полученный из пандиагонального квадрата 5-го порядка, построенного мной, вот этот 0, 24, 30, 40, 54, 64, 84, 88, 94, 96, 106, 108, 114, 120, 136, 138, 150, 154, 180, 184, 198, 210, 220, 234, 264 |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Опа! Для этого паттерна программа на выдала ни одного кандидата! Это уже интересно. Что-то напортачила с паттерном или есть прокол в программе предпроверки? Сейчас проверю другой паттерн, полученный из моего пандиагонального квадрата, вот этот 0, 6, 10, 16, 28, 30, 34, 40, 58, 60, 66, 70, 76, 84, 88, 90, 94, 114, 144, 150, 154, 160, 184, 214, 220 Для этого паттерна кандидаты найдены [0, 16, 58, 144, 220], [6, 10, 30, 28, 40, 34, 60, 84, 70, 90, 66, 0, 0, 0, 0, 0, 154, 0, 0, 0] [0, 16, 58, 144, 220], [6, 10, 30, 28, 40, 34, 60, 84, 70, 90, 154, 0, 0, 0, 0, 0, 66, 0, 0, 0] [0, 16, 58, 144, 220], [6, 10, 30, 28, 40, 34, 84, 60, 94, 66, 150, 0, 0, 0, 0, 0, 70, 0, 0, 0] [0, 16, 58, 144, 220], [10, 6, 28, 30, 34, 40, 60, 84, 66, 94, 70, 0, 0, 0, 0, 0, 150, 0, 0, 0] [0, 16, 58, 144, 220], [10, 6, 28, 30, 34, 40, 60, 84, 66, 94, 150, 0, 0, 0, 0, 0, 70, 0, 0, 0] [0, 16, 58, 144, 220], [10, 6, 28, 30, 34, 40, 84, 60, 90, 70, 154, 0, 0, 0, 0, 0, 66, 0, 0, 0] [0, 16, 88, 114, 220], [10, 6, 28, 60, 34, 70, 84, 30, 90, 40, 144, 0, 0, 0, 0, 0, 76, 0, 0, 0] [0, 16, 88, 114, 220], [10, 6, 28, 60, 34, 70, 84, 30, 90, 40, 154, 0, 0, 0, 0, 0, 66, 0, 0, 0] [0, 34, 40, 144, 220], [6, 28, 30, 10, 58, 16, 60, 84, 88, 90, 66, 0, 0, 0, 0, 0, 154, 0, 0, 0] [0, 34, 40, 144, 220], [6, 28, 30, 10, 58, 16, 60, 84, 88, 90, 70, 0, 0, 0, 0, 0, 150, 0, 0, 0] [0, 34, 40, 144, 220], [6, 28, 30, 10, 58, 16, 60, 84, 88, 90, 150, 0, 0, 0, 0, 0, 70, 0, 0, 0] [0, 34, 40, 144, 220], [6, 28, 30, 10, 58, 16, 60, 84, 88, 90, 154, 0, 0, 0, 0, 0, 66, 0, 0, 0] [0, 40, 88, 90, 220], [10, 30, 28, 60, 58, 70, 84, 6, 114, 16, 144, 0, 0, 0, 0, 0, 76, 0, 0, 0] [0, 40, 88, 90, 220], [10, 30, 28, 60, 58, 70, 84, 6, 114, 16, 154, 0, 0, 0, 0, 0, 66, 0, 0, 0] Протестирую и второй паттерн, полученный из моего пандиагонального квадрата, вот этот 0, 4, 18, 24, 30, 48, 58, 66, 70, 84, 88, 96, 126, 130, 136, 144, 150, 156, 174, 178, 180, 184, 198, 210, 228 Для этого паттерна тоже не выдалось ни одного кандидата. Беру второй паттерн от Павловского 0, 10, 18, 24, 28, 30, 34, 40, 48, 58, 66, 70, 84, 88, 90, 94, 96, 100, 114, 118, 136, 154, 160, 166, 184 Кандидаты найдены [0, 28, 90, 100, 184], [10, 18, 66, 24, 84, 34, 70, 30, 88, 40, 136, 0, 0, 0, 0, 0, 48, 0, 0, 0] [0, 28, 90, 100, 184], [18, 10, 24, 66, 34, 84, 30, 70, 40, 88, 48, 0, 0, 0, 0, 0, 136, 0, 0, 0] [0, 28, 90, 100, 184], [18, 10, 24, 66, 34, 84, 30, 70, 40, 88, 136, 0, 0, 0, 0, 0, 48, 0, 0, 0] [0, 28, 94, 96, 184], [18, 10, 24, 70, 34, 88, 30, 66, 40, 84, 48, 0, 0, 0, 0, 0, 136, 0, 0, 0] [0, 28, 94, 96, 184], [18, 10, 24, 70, 34, 88, 30, 66, 40, 84, 136, 0, 0, 0, 0, 0, 48, 0, 0, 0] [0, 28, 94, 96, 184], [18, 10, 24, 70, 34, 88, 48, 48, 58, 66, 84, 0, 0, 0, 0, 0, 100, 0, 0, 0] [0, 28, 94, 96, 184], [18, 10, 24, 70, 34, 88, 48, 48, 58, 66, 100, 0, 0, 0, 0, 0, 84, 0, 0, 0] [0, 28, 94, 96, 184], [18, 10, 24, 70, 34, 88, 48, 48, 58, 66, 154, 0, 0, 0, 0, 0, 30, 0, 0, 0] [0, 34, 84, 100, 184], [10, 24, 66, 18, 90, 28, 70, 30, 94, 40, 88, 0, 0, 0, 0, 0, 96, 0, 0, 0] [0, 34, 84, 100, 184], [10, 24, 66, 18, 90, 28, 70, 30, 94, 40, 96, 0, 0, 0, 0, 0, 88, 0, 0, 0] [0, 34, 84, 100, 184], [10, 24, 66, 18, 90, 28, 70, 30, 94, 40, 136, 0, 0, 0, 0, 0, 48, 0, 0, 0] [0, 40, 84, 94, 184], [10, 30, 66, 18, 96, 28, 70, 24, 100, 34, 136, 0, 0, 0, 0, 0, 48, 0, 0, 0] Скорее всего, что-то с паттернами из моих пандиагональных квадратов напортачила. Для одного паттерна кандидаты найдены, а для двух не найдены. Но надо ещё потестировать паттерны от Павловского и от Andersen. Если для всех этих паттернов кандидаты найдутся, значит, ошибка в моих паттернах. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Все паттерны от Павловского протестировала, кандидаты выдались для всех паттернов. Программа предпроверки для конкретного паттерна \l test_st_res.txt {a=vector(5);b=vector(20); w=[0, 2, 6, 8, 30, 32, 42, 48, 60, 62, 72, 86, 92, 102, 116, 126, 128, 146, 156, 162, 168, 186, 212, 216, 282]; a[5]=w[25]; a[1]=w[1]; s1=w[2]; for (i=3,25, s1=s1+w[i]; ); s=s1/5; print(s); for (i=2,24, a[2]=w[i]; for (j=i+1,24, a[3]=w[j]; for (k=j+1,24, a[4]=w[k]; if(a[2]+a[3]+a[4]+a[5]==s, for (l=2,24, b[1]=w[l]; if(b[1]>a[2],next); if(b[1]==a[2] || b[1]==a[3] || b[1]==a[4], next); b[2]=a[2]-b[1]; for (m=2,24, if(b[2]<>w[m], next); for (m=l+1,24, b[3]=w[m]; if(b[3]>a[3], next); if(b[3]==a[2] || b[3]==a[3] || b[3]==a[4] || b[3]==b[2], next); b[4]=a[3]-b[3]; if(b[4]==a[2] || b[4]==a[4] || b[4]==b[1] || b[4]==b[2] || b[4]==b[3], next); for (n=2,24, if(b[4]<>w[n], next); b[5]=b[3]+(a[2]-b[1]); if(b[5]==a[2] || b[5]==a[3] || b[5]==a[4] || b[5]==b[1] || b[5]==b[2] || b[5]==b[4], next); for (n=2,24, if(b[5]<>w[n], next); b[6]=a[2]+(b[4]-b[2]); if(b[6]==a[3] || b[6]==a[4] || b[6]==b[1] || b[6]==b[2] || b[6]==b[3] || b[6]==b[4] || b[6]==b[5], next); for (n=2,24, if(b[6]<>w[n], next); for (n=m+1,24, b[7]=w[n]; if(b[7]>a[4], next); if(b[7]==a[2] || b[7]==a[3] || b[7]==a[4] || b[7]==b[2] || b[7]==b[4] || b[7]==b[5] || b[7]==b[6], next); b[8]=a[4]-b[7]; if(b[8]==a[2] || b[8]==a[3] || b[8]==b[1] || b[8]==b[2] || b[8]==b[3] || b[8]==b[4] || b[8]==b[5] || b[8]==b[6], next); for (o=2,24, if(b[8]<>w[o], next); if(b[7]+b[5]+b[6]+b[8]+a[5]<>s, next); b[9]=b[7]+(b[5]-b[3]); if(b[9]==a[2] || b[9]==a[3] || b[9]==a[4] || b[9]==b[2] || b[9]==b[4] || b[9]==b[5] || b[9]==b[6] || b[9]==b[8], next); for (o=2,24, if(b[9]<>w[o], next); b[10]=b[6]+(b[8]-b[4]); if(b[10]==a[2] || b[10]==a[3] || b[10]==a[4] || b[10]==b[1] || b[10]==b[2] || b[10]==b[3] || b[10]==b[7] || b[10]==b[5] || b[10]==b[9], next); for (o=2,24, if(b[10]<>w[o], next); for (o=2,24, if(b[10]<>w[o], next); for (o=n+1,24, b[11]=w[o]; if(b[11]==a[2] || b[11]==a[3] || b[11]==a[4] || b[11]==b[2] || b[11]==b[4] || b[11]==b[5] || b[11]==b[6] || b[11]==b[8] || b[11]==b[9] || b[11]==b[10], next); b[17]=s-a[3]-b[9]-b[10]-b[11]; if(b[17]==a[2] || b[17]==a[3] || b[17]==a[4] || b[17]==b[1] || b[17]==b[2] || b[17]==b[3] || b[17]==b[4] || b[17]==b[5] || b[17]==b[6] || b[17]==b[7] || b[17]==b[8] || b[17]==b[9] || b[17]==b[10] || b[17]==b[11], next); for (p=2,24, if(b[17]<>w[p], next); print1(a,", "); print1(b); print(); print(); ););););););););););););););););); } Введите в программу конкретный паттерн, например w=[0, 2, 6, 8, 30, 32, 42, 48, 60, 62, 72, 86, 92, 102, 116, 126, 128, 146, 156, 162, 168, 186, 212, 216, 282]; и вы получите кандидатов, если для данного паттерна они есть. Для приведённого примера вывод программы (06:34) gp > \rtest_st.txt logfile = "test_st_res.txt" 508 [0, 8, 72, 146, 282], [2, 6, 42, 30, 48, 32, 86, 60, 92, 62, 126, 0, 0, 0, 0, 0, 156, 0, 0, 0] [0, 8, 72, 146, 282], [2, 6, 42, 30, 48, 32, 86, 60, 92, 62, 156, 0, 0, 0, 0, 0, 126, 0, 0, 0] [0, 8, 72, 146, 282], [6, 2, 30, 42, 32, 48, 60, 86, 62, 92, 126, 0, 0, 0, 0, 0, 156, 0, 0, 0] [0, 8, 72, 146, 282], [6, 2, 30, 42, 32, 48, 60, 86, 62, 92, 156, 0, 0, 0, 0, 0, 126, 0, 0, 0] [0, 8, 102, 116, 282], [2, 6, 42, 60, 48, 62, 86, 30, 92, 32, 126, 0, 0, 0, 0, 0, 156, 0, 0, 0] [0, 8, 102, 116, 282], [2, 6, 42, 60, 48, 62, 86, 30, 92, 32, 156, 0, 0, 0, 0, 0, 126, 0, 0, 0] [0, 32, 48, 146, 282], [2, 30, 42, 6, 72, 8, 86, 60, 116, 62, 126, 0, 0, 0, 0, 0, 156, 0, 0, 0] [0, 32, 48, 146, 282], [2, 30, 42, 6, 72, 8, 86, 60, 116, 62, 156, 0, 0, 0, 0, 0, 126, 0, 0, 0] [0, 62, 72, 92, 282], [2, 60, 42, 30, 102, 32, 86, 6, 146, 8, 126, 0, 0, 0, 0, 0, 156, 0, 0, 0] [0, 62, 72, 92, 282], [2, 60, 42, 30, 102, 32, 86, 6, 146, 8, 156, 0, 0, 0, 0, 0, 126, 0, 0, 0] |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Осталось протестировать ещё три паттерна от Andersen, один я уже тестировала раньше. Ну, с ними наверняка всё в порядке. А вот с моими паттернами что-то не в порядке. PS. Проверила все четыре паттерна от Andersen. Кандидаты выдались для всех четырёх паттернов. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Цитата Сейчас проверю другой паттерн, полученный из моего пандиагонального квадрата, вот этот ________________________ конец цитаты Достроила вручную первого кандидата, получился такой квадрат Стенли 0 6 30 60 66 10 16 40 70 76 28 34 58 88 94 84 90 114 144 150 154 160 184 214 220 S=438 Таким образом, этот паттерн вполне годный для построения квадрата Стенли. С двумя другими паттернами, полученными из моих пандиагональных квадратов, надо разбираться. Почему-то они не дают кандидатов. У меня там ещё много паттернов из моих пандиагональных квадратов получено. Надо их все проверить на кандидаты. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Вопрос: в PARI/GP есть операция сравнения двух векторов одинаковой длины? То есть if( v==w, ... где v и w векторы одинаковой длины. Конечно, можно сравнивать покомпонентно, но это долго. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Вот теоретические паттерны, которые я нашла из построенных мной пандиагональных квадратов 0, 2, 6, 8, 12, 18, 56, 62, 182, 188, 216, 218, 228, 272, 398, 420, 422, 432, 476, 602, 816, 818, 828, 872, 998 0, 2, 12, 14, 30, 42, 44, 56, 90, 92, 120, 134, 350, 362, 440, 552, 554, 582, 596, 600, 602, 630, 644, 902, 950 0, 4, 18, 22, 24, 42, 60, 64, 84, 294, 298, 318, 360, 378, 420, 430, 448, 480, 484, 490, 504, 654, 724, 840, 910 0, 6, 8, 14, 30, 38, 50, 56, 80, 128, 134, 158, 210, 216, 240, 540, 548, 590, 668, 678, 686, 728, 750, 806, 888 0, 2, 12, 14, 18, 30, 120, 122, 138, 150, 152, 168, 308, 320, 428, 432, 434, 450, 458, 578, 590, 698, 728, 740, 1010 0, 6, 10, 12, 16, 22, 30, 36, 40, 42, 48, 66, 390, 400, 426, 556, 562, 568, 570, 576, 582, 586, 600, 946, 960 0, 4, 6, 10, 16, 22, 30, 34, 46, 60, 66, 90, 114, 120, 144, 450, 454, 466, 510, 564, 900, 904, 916, 960, 1014 0, 2, 18, 20, 30, 48, 96, 98, 126, 140, 158, 170, 188, 236, 266, 528, 530, 558, 576, 578, 606, 668, 698, 716, 746 0, 4, 24, 28, 30, 54, 64, 66, 70, 84, 88, 96, 108, 130, 150, 414, 418, 444, 478, 498, 864, 868, 894, 928, 948 0, 6, 12, 14, 20, 26, 50, 56, 62, 132, 146, 182, 300, 306, 312, 336, 350, 386, 432, 636, 680, 686, 692, 812, 1016 0, 6, 8, 14, 18, 26, 78, 84, 96, 140, 146, 158, 278, 284, 296, 426, 434, 504, 546, 554, 566, 624, 686, 704, 824 0, 2, 8, 12, 14, 20, 90, 92, 98, 132, 134, 140, 308, 320, 398, 408, 420, 440, 498, 510, 512, 518, 540, 818, 918 0, 6, 10, 12, 18, 22, 36, 42, 46, 66, 78, 102, 166, 178, 202, 372, 378, 382, 438, 538, 792, 798, 802, 858, 958 0, 4, 12, 16, 30, 42, 60, 64, 90, 112, 124, 172, 240, 244, 270, 312, 316, 342, 352, 424, 660, 672, 720, 900, 972 0, 2, 12, 30, 32, 42, 108, 110, 120, 128, 158, 210, 212, 222, 236, 338, 348, 350, 360, 476, 572, 602, 680, 782, 920 0, 6, 10, 16, 24, 30, 34, 36, 54, 84, 90, 100, 106, 108, 124, 210, 220, 240, 294, 310, 936, 946, 966, 1020, 1036 0, 4, 18, 22, 30, 34, 48, 52, 144, 162, 198, 202, 228, 232, 342, 378, 382, 408, 412, 522, 564, 568, 594, 598, 708 0, 6, 14, 20, 30, 44, 68, 74, 98, 168, 174, 180, 194, 198, 224, 230, 248, 254, 348, 404, 660, 674, 728, 828, 884 0, 8, 12, 20, 38, 50, 144, 150, 152, 162, 180, 182, 188, 218, 270, 278, 294, 308, 330, 420, 518, 530, 662, 698, 788 0, 4, 6, 10, 34, 40, 66, 70, 100, 126, 130, 160, 174, 180, 240, 300, 360, 364, 394, 510, 516, 534, 576, 636, 870 0, 2, 6, 8, 50, 56, 66, 72, 90, 92, 126, 128, 140, 156, 176, 192, 420, 422, 470, 486, 500, 506, 590, 626, 920 0, 4, 6, 10, 48, 54, 60, 64, 108, 126, 130, 174, 246, 250, 270, 276, 294, 330, 396, 490, 496, 516, 550, 616, 736 0, 2, 30, 32, 42, 72, 74, 90, 92, 104, 132, 164, 200, 230, 240, 242, 282, 290, 314, 440, 552, 554, 594, 626, 752 0, 4, 18, 22, 30, 40, 48, 58, 84, 88, 114, 124, 240, 258, 270, 274, 300, 310, 324, 510, 534, 538, 564, 574, 774 0, 14, 24, 26, 38, 50, 54, 68, 80, 84, 98, 110, 114, 138, 168, 198, 200, 224, 254, 284, 684, 698, 710, 798, 884 0, 4, 36, 40, 64, 66, 70, 100, 130, 144, 180, 210, 252, 256, 270, 274, 294, 316, 330, 334, 360, 396, 414, 546, 564 0, 6, 20, 26, 48, 68, 92, 98, 102, 108, 140, 150, 186, 206, 216, 236, 278, 288, 308, 318, 440, 446, 488, 626, 656 0, 2, 12, 14, 30, 42, 60, 62, 90, 102, 104, 132, 134, 146, 194, 236, 260, 272, 320, 362, 480, 482, 510, 614, 740 0, 48, 86, 114, 134, 140, 188, 200, 204, 254, 260, 290, 308, 330, 344, 374, 378, 444, 464, 468, 534, 554, 608, 728, 798 и ещё 9 штук n=25: [0, 6, 36, 42, 66, 72, 76, 112, 114, 120, 142, 190, 240, 246, 316, 336, 372, 402, 450, 576, 736, 772, 802, 850, 976] n=25: [0, 10, 12, 22, 24, 36, 276, 286, 300, 432, 442, 456, 492, 502, 516, 934, 946, 1210, 1284, 1296, 1366, 1426, 1560, 1716, 1776] n=25: [0, 14, 24, 36, 38, 60, 114, 128, 150, 540, 554, 576, 686, 710, 800, 954, 968, 990, 1016, 1040, 1130, 1226, 1556, 1640, 1970] n=25: [0, 12, 72, 86, 98, 150, 158, 236, 296, 308, 368, 446, 516, 602, 606, 618, 678, 756, 812, 1122, 1556, 1568, 1628, 1706, 2072] n=25: [0, 6, 30, 36, 114, 126, 144, 156, 166, 172, 280, 292, 546, 552, 660, 672, 790, 796, 904, 916, 1386, 1416, 1552, 1932, 2176] n=25: [0, 2, 6, 8, 12, 18, 30, 36, 48, 50, 60, 78, 90, 92, 102, 120, 126, 128, 138, 156, 252, 258, 300, 342, 378] n=25: [0, 6, 8, 14, 18, 26, 36, 44, 78, 84, 96, 114, 278, 284, 296, 314, 378, 386, 456, 656, 698, 704, 716, 734, 1076] n=25: [0, 4, 60, 64, 66, 70, 120, 150, 154, 180, 186, 270, 336, 340, 354, 414, 420, 456, 460, 504, 520, 526, 610, 690, 796] n=25: [0, 12, 30, 42, 80, 92, 110, 122, 128, 140, 158, 168, 170, 180, 198, 210, 420, 500, 530, 542, 548, 560, 572, 588, 950] Сейчас займусь их проверкой на кандидатов. PS. Проверила все эти паттерны программой предпроверки. Для всех паттернов кандидаты найдены. Итак. всего два паттерна из моих пандиагональных квадратов 5-го порядка ошибочные; что-то не так я сделала при определении этих паттернов. А может, пандиагональные квадраты, из которых паттерны получены, с ошибкой. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Для одной 25-ки найдено два кандидата! KANDIDAT 539868793518589, [0, 204, 220, 502, 678], [42, 162, 138, 82, 300, 124, 240, 262, 402, 304, 288, 0, 0, 0, 0, 0, 390, 0, 0, 0] KANDIDAT 539868793518589, [0, 204, 220, 502, 678], [42, 162, 138, 82, 300, 124, 240, 262, 402, 304, 390, 0, 0, 0, 0, 0, 288, 0, 0, 0] В этих кандидатах элементы b[11] и b[17] переставлены местами. Отлично! Проверю достраивание обоих кандидатов до квадрата Стенли. Посмотрю, сколько будет "дырок" в этих квадратах. Оба кандидата достроились до квадрата Стенли с 8 "дырками". |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Цитата из сообщения https://boinc.progger.info/odlk/forum_thread.php?id=260&postid=12781 Итак, мы имеем 55 различных паттернов для пандиагонального квадрата 5х5. Выбросим два моих неправильных паттерна; а также выбросим четыре паттерна от Andersen с минимальным диаметром 156, так как 25-ки из последовательных простых чисел с такими паттернами по утверждению Andersen до 10^20 не встречаются. Остаётся 49 годных теоретических паттернов для квадратов Стенли 5х5 (если проверять в диапазоне до 10^20). Выше я спрашивала про операцию сравнения векторов в PARI/GP. Идея такая пришла в голову. Запишем имеющиеся 49 годных теоретических паттернов в матрицу M(49,25). Теперь будем тупо проверять все 25-ки из последовательных простых чисел подряд, определять паттерн каждой из них и проверять, есть ли такой паттерн в нашей матрице М(49,25). Обработки здесь фактически никакой! Всё должно выполняться очень быстро. Для генерации простых чисел можно использовать primesieve. Недостаток алгоритма только в том, что он не гарантирует нахождение всех решений, потому что теоретических паттернов у нас очень мало. Конечно, можно ещё найти теоретические паттерны, но вряд ли можно найти их все. Ну вот, можно опробовать этот альтернативный алгоритм. Предлагаю всем! |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 15467 Credit: 0 RAC: 0 |
Я писала в сообщении https://dxdy.ru/post903962.html#p903962 maxal Пришла пора оптимизировать программу предпроверки на возможность построения квадрата Стенли. Я чувствовала, что у меня предпроверка организована далеко не лучшим образом. В цитате написано, что в программе Алексея Белышева проверка полного квадрата Стенли требует перебора всего четырёх свободных переменных из 24 (первый элемент, равный нулю, считается фиксированным и всегда находится в левой верхней ячейке квадрата Стенли). У меня же только предпроверка содержит перебор шести свободных переменных, хотя и из 23 (я фиксирую два элемента квадрата Стенли: минимальный, равный нулю, и максимальный - последний элемент паттерна, который записывается в правой нижней ячейке квадрата). А окончательная проверка требует перебора ещё одной свободной переменной. Итого на полный квадрат Стенли у меня требуется перебор семи свободных переменных из 23. ВотЪ! Надо переписывать программу предпроверки. Так давно всё это было, что успело очень хорошо забыться. Ну, первый опыт построения квадрата Стенли на PARI/GP считаю всё же успешным, квадрат (точнее - кандидат с 8 "дырками") строится, хотя и долго. |
©2025 (C) Progger