Message boards :
Cafe :
Симметричный кортеж длины 19 с минимальным диаметром из последовательных простых чисел
Message board moderation
Previous · 1 · 2 · 3 · 4 · Next
Author | Message |
---|---|
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
gris прислал оптимизацию программы и попросил запустить тест точно такой же, как в этом сообщении - на черепашке https://boinc.progger.info/odlk/forum_thread.php?id=269&postid=13527 Выполнила тест (11:50) gp > \r formulae_41_17_3_test.gp 22996961036 from number 22996961036 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 304250263527210 period search in 6996831455527980295789560 (7.0 E24) - 6996831455832230559316770 (7.0 E 24) central 3: [120,126,132] prove by 41#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 159252480 formulae expected 6996831455533617724762823: [0, 2, 0, 0, -28, -34, 14, 0, 0, 0, -12, -16, -24, -3 0, -40, -18, 0] time = 1h, 7min, 18,039 ms. В предыдущем тесте (см. ссылку выше) у черепашки было время time = 2h, 25min, 57,069 ms. Получилось убыстрение более чем в два раза! gris браво! Нет предела оптимизации! |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Так, стоп! \\ начало проверки кортежа foreach(vp,bpp, bpt=form+bpp+6; if(ispseudoprime(bpt+0) && ispseudoprime(bpt+120) && ispseudoprime(bpt+240), vmy[1]=bpt; for( i=1,8, vmy[i+1]=nextprime(vmy[i]+1) ); if( vmy[9]==bpt+120, for( i=9,16, vmy[i+1]=nextprime(vmy[i]+1) ); if( vmy[17]==bpt+240, for(i=1,17, pat1[i]=vmy[i]-vmy[1]; ); if(pat1[8]==114 && pat1[10]==126 , print(vmy[1],": ",pat1-pt17); ); ); ); );\\ if(pseudo... );\\ foreach \\ конец проверки кортежа gris у вас проверяется только ключевая 17-ка. А где проверка 19-ки? Вы её выбросили? Таким образом, у вас убыстрение потому, что вы проверку 19-ок выбросили. А зачем выбросили? Это же у нас программа поиска 19-ки с минимальным диаметром. *** Отправила вопрос в письме Так, а где у вас проверка 19-ки? *** Ответ от gris получен такой А, точно, 19-ку я и не заметил. А зачем её проверять? Э-э-э... У нас вроде программа поиска 19-ки с минимальным диаметром. *** В общем. всё разъяснилось - почему такое большое убыстрение получилось. Может быть, проверка кортежа gris и даст убыстрение, но точно не в два раза. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Продолжаю тестировать на черепашке программу на одном периоде 41#. Показываю несколько проходов (06:42) gp > \r formulae_41_19_17_new.gp *** Warning: new maximum stack size = 100000000 (95.367 Mbytes). 22996961036 from number 22996961036 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 304250263527210 period search in 6996831455527980295789560 (7.0 E24) - 6996831455832230559316770 (7.0 E 24) central 3: [120,126,132] prove by 41#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 159252480 formulae expected 6996831455533617724762823: [0, 8, 24, 36, 38, 50, 104, 114, 120, 126, 138, 140, 150, 174, 176, 216, 240] 6996831455533617724762823: [0, 2, 0, 0, -28, -34, 14, 0, 0, 0, -12, -16, -24, -3 0, -40, -18, 0] time = 2h, 25min, 57,069 ms. (09:53) gp > \r formulae_41_19_17_new.gp 22996961037 from number 22996961037 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 304250263527210 period search in 6996831455832230559316770 (7.0 E24) - 6996831456136480822843980 (7.0 E 24) central 3: [120,126,132] prove by 41#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 159252480 formulae expected 6996831456077260999731617: [0, 2, 20, 24, 62, 66, 92, 114, 120, 126, 140, 150, 1 64, 216, 222, 230, 240] 6996831456077260999731617: [0, -4, -4, -12, -4, -18, 2, 0, 0, 0, -10, -6, -10, 1 2, 6, -4, 0] time = 2h, 26min, 24,588 ms. (12:28) gp > \r formulae_41_19_17_new.gp 22996961038 from number 22996961038 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 304250263527210 period search in 6996831456136480822843980 (7.0 E24) - 6996831456440731086371190 (7.0 E 24) central 3: [120,126,132] prove by 41#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 159252480 formulae expected Последний проход ещё работает. Время стабильно: 2 ч. 25 мин. - 2 ч. 26 мин. Вполне возможно, что программу можно оптимизировать (именно на этом периоде), но вряд ли удастся убыстрить в 2 раза. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
А на Ахиллесе-3 продолжается тест на периоде 43#. Ждём-с. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Вопрос знатокам Это проверка центральной тройки в ключевой 17-ке от gris \\ начало проверки кортежа foreach(vp,bpp, bpt=form+bpp+6; if(ispseudoprime(bpt+0) && ispseudoprime(bpt+120) && ispseudoprime(bpt+240), vmy[1]=bpt; for( i=1,8, vmy[i+1]=nextprime(vmy[i]+1) ); if( vmy[9]==bpt+120, for( i=9,16, vmy[i+1]=nextprime(vmy[i]+1) ); if( vmy[17]==bpt+240, for(i=1,17, pat1[i]=vmy[i]-vmy[1]; ); if(pat1[8]==114 && pat1[10]==126 , print(vmy[1],": ",pat1-pt17); ); ); ); );\\ if(pseudo... );\\ foreach \\ конец проверки кортежа А это та же самая проверка моя \\ начало проверки кортежа foreach(vp,bpp, bpt=form+bpp; if(ispseudoprime(bpt+6) && ispseudoprime(bpt+246), l=0; forprime(p=bpt+6,bpt+246, l++; vmy[l]=p; ); if(l==17, for(m=1,17, pat1[m]=vmy[m]-vmy[1]; ); if(pat1[8]==114 && pat1[9]==120 && pat1[10]==126, print(vmy[1],": ",pat1); print(vmy[1],": ",pat1-pt17); if(pat1==pt17, print(vmy[1],": ",pat1); ););); );\\ if );\\ foreach \\ конец проверки кортежа Вопрос: какая проверка выполнится быстрее? У меня гораздо короче, у gris - длиннее. Но краткость ещё ни о чём не говорит. Возможно, предварительные проверки у gris отсекают сразу много вариантов. И второй вопрос: можно ли оптимизировать эти проверки, значительно убыстрив их обе? *** gris, нужен отдельный тест этих проверок на диапазоне из меньших чисел и на меньшем периоде (чтобы у вас отработал тест). |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
gris в смятении. Письмо полностью вот это для меня новость. У вас первый кусок ищет 17-ку с простыми по краям и тройкой посередине. после нахождения можно в принципе отойти по простым на шаг вправо и влево и проверить укладывания спагеттины в паттерн от 19. Теперь по частям. У вас первый кусок ищет 17-ку с простыми по краям и тройкой посередине. после нахождения можно в принципе отойти по простым на шаг вправо и влево и проверить укладывания спагеттины в паттерн от 19. Нет, нельзя. Потому что ключевые 17-ки теряются, даже полные, как показало тестирование программы. У 17-ок и 19-ок разные входы, поэтому проверять их нужно отдельно. У вас же забывается о семнашке и начинает проверятся 19-ка с простыми по краям и тройкой посередине. Она может случиться и в другой формуле. У меня ничего не забывается. Вслед за проверкой ключевой 17-ки идёт проверка 19-ки; всё это для одной и той же формулы, которая генерируется по паттерну 19-ки и хватается на лету. Я только что подумал, что это поиск двух различных объектов одном флаконе. Это не даёт экономии, так как генерация формул занимает очень мало времени по сравнению с проверками кортежей. Да, проверка двух различных объектов. А что, это запрещается? Вот хочу проверять сразу ключевые 17-ки и 19-ки с минимальным диаметром. Почему нельзя? Что ищется в вашей последней модификации, я не догадался :((( А по тексту программы разве не видно? Да и писала я это несколько раз: что ищу одновременно и ключевые 17-ки с центральной тройкой, и 19-ки с минимальным диамтером с центральной тройкой. Ну, и разумеется, полные ключевые 17-ки (вдруг какая-то не потеряется!) и полные 19-ки с минимальным диаметром - эти теряться не должны. Вы просто выбросили из программы проверку 19-ок if(ispseudoprime(bpt) && ispseudoprime(bpt+252), l=0; forprime(p=bpt,bpt+252, l++; vmy[l]=p; ); if(l==19, for(m=1,19, pat2[m]=vmy[m]-vmy[1]; ); if(pat2[9]==120 && pat2[10]==126 && pat2[11]==132, print(vmy[1],": ",pat2); print(vmy[1],": ",pat2-pt); if(pat2==pt, print(vmy[1],": ",pat2); ););); );\\ if **** В общем, программа у меня тестируется и на периоде 41# (на черепашке), и на периоде 43# (на Ахиллесе-3) Вполне допускаю, что моя проверка двух объектов не оптимальная, но она работает. Пока центральные тройки найдены только в ключевой 17-ке. Надо дождаться появления центральной тройки в 19-ке с минимальным диаметром. Это более редкие объекты, нежели ключевые 17-ки с центральной тройкой, несмотря на то, что ключевые 17-ки в этой программе теряются (даже полные!). А вот 19-ки с минимальным диаметром (полные) теряться не должны, потому что программа специально написана по паттерну 19-ки с минимальным диаметром. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Повторю проход на черепашке, в котором найдена центральная тройка в ключевой 17-ке (09:53) gp > \r formulae_41_19_17_new.gp 22996961037 from number 22996961037 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 304250263527210 period search in 6996831455832230559316770 (7.0 E24) - 6996831456136480822843980 (7.0 E 24) central 3: [120,126,132] prove by 41#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] 159252480 formulae expected 6996831456077260999731617: [0, 2, 20, 24, 62, 66, 92, 114, 120, 126, 140, 150, 1 64, 216, 222, 230, 240] 6996831456077260999731617: [0, -4, -4, -12, -4, -18, 2, 0, 0, 0, -10, -6, -10, 1 2, 6, -4, 0] time = 2h, 26min, 24,588 ms. Нужны ли эти приближения к ключевой 17-ке - такие дырявые? Да, нужны! Кому-то, может быть, не нужны, а мне нужны. Это своеобразные вехи, они помогают идти. Ключевых 17-ок сколько существует? Много! Пока мы знаем только 8 штук 1006882292528806742267: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 3954328349097827424397: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 4896552110116770789773: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 6751407944109046348063: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 7768326730875185894807: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 19252814175273852997757: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 154787380396512840656507: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 901985248981556228168767: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240 Посмотрите на расстояния между ними! 22-значные 5 штук, 23-значные - одна, 24-значные - 2 шт. Даже если есть пропущенные, всё равно расстояния между ключевыми 17-ми огромные. Где будут следующие ключевые 17-ки? 25-значные, 26-значные, 27-значные... - по одной-две штуки? Какая из ключевых 17-ок даст 19-ку с минимальным диаметром? Может, это будет 30-значная или 33-значная ключевая 17-ка. Поиск ключевых 17-ок - это дорожная карта на данном этапе проекта. Всякие нужны, всякие важны, даже сильно дырявые. Нужен разброс в поиске по огромному диапазону - от 25-значных до... чёрт знает каких чисел. Как сделать такой разброс? Очень трудно! Вот у меня лучшее приближение к ключевой 17-ке - 5 "дырок" {17490495234134888194088533, 17490495234134888194088539, *17490495234134888194088567, 17490495234134888194088569, 17490495234134888194088599, 17490495234134888194088617, 17490495234134888194088623, 17490495234134888194088647, 17490495234134888194088653, 17490495234134888194088659, *17490495234134888194088681, *17490495234134888194088687, 17490495234134888194088707, *17490495234134888194088729, *17490495234134888194088747, 17490495234134888194088767, 17490495234134888194088773} 26-значные числа! Найдите-ка не дырявую 26-значную ключевую 17-ку. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Найдена центральная тройка в 19-ке с минимальным диаметром (на черепашке)! 6996831457957438077446287: [0, 12, 42, 54, 72, 76, 90, 94, 120, 126, 132, 162, 180, 196, 216, 222, 246, 250, 252] 6996831457957438077446287: [0, 6, 30, 24, 30, 4, 0, -2, 0, 0, 0, 6, 18, 16, 6, 0, 6, 4, 0] В приближении 7 правильных элементов, 12 "дырок". Сейчас разверну это приближение. Готово! {6996831457957438077446287, *6996831457957438077446299, *6996831457957438077446329, *6996831457957438077446341, *6996831457957438077446359, *6996831457957438077446363, 6996831457957438077446377, *6996831457957438077446381, 6996831457957438077446407, 6996831457957438077446413, 6996831457957438077446419, *6996831457957438077446449, *6996831457957438077446467, *6996831457957438077446483, *6996831457957438077446503, 6996831457957438077446509, *6996831457957438077446533, *6996831457957438077446537, 6996831457957438077446539} Ну вот, так далека я от полной 19-ки с минимальным диаметром. Однако с приближением всё в порядке, программа работает правильно, можно продолжать поиск. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Цитата А на Ахиллесе-3 продолжается тест на периоде 43#. Тест ещё не завершился. Кажется, период 43# - это перебор. Надо остановиться на периоде 41#. На этом периоде программа и на черепашке прекрасно работает, сделала проверку по два периода. На Ахиллесе-3 можно проверять по 10 периодов. Ну, ещё подожду немножко, может, всё-таки завершится тест на периоде 43#. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Цитата из сообщения https://boinc.progger.info/odlk/forum_thread.php?id=269&postid=13534 gris, Ну вот, мы протестировали два способа проверки (тестировалось на черепашке) с проверкой gris (05:48) gp > \r formulae_41_17_3_test.gp 34886389903725 from number 34886389903744 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 200560490130 period search in 6996831457957369512734250 (7.0 E24) - 6996831457961380722536850 (7.0 E 24) central 3: [120,126,132] prove by 31#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31] 331776 formulae expected 6996831457957438077446287: [0, 6, 30, 24, 30, 4, 0, -2, 0, 0, 0, 6, 18, 16, 6, 0 , 6, 4, 0] time = 3min, 13,847 ms. с моей проверкой (05:53) gp > \r formulae_41_17_3_test1.gp 34886389903725 from number 34886389903744 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 200560490130 period search in 6996831457957369512734250 (7.0 E24) - 6996831457961380722536850 (7.0 E 24) central 3: [120,126,132] prove by 31#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31] 331776 formulae expected 6996831457957438077446287: [0, 6, 30, 24, 30, 4, 0, -2, 0, 0, 0, 6, 18, 16, 6, 0 , 6, 4, 0] time = 4min, 40,101 ms. Моя проверка явно медленнее. Запишу в программу проверку gris. PS. Записала вчера в программу проверку по gris. Через некоторое время начало грызть сомнение насчёт середины. Вернулась к своей проверке. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
С ума сойти! Программа на периоде 43# всё ещё работает. И прерывать уже жалко. Появились два приближения: к ключевой 17-ке и к 19-ке с минимальным диаметром Вот что сейчас в консоли ? \r formulae_43_19_17_new.txt *** Warning: new maximum stack size = 100000000 (95.367 Mbytes). 12996961000 from number 12996961000 to number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 13082761331670030 period search in 170036138800023444778830000 (1.7 E26) - 170036138813106206110500030 (1.7 E26) central 3: [120,126,132] prove by 43#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43] 3822059520 formulae expected 170036138805489978259586567: [0, 6, 24, 62, 84, 86, 102, 114, 120, 126, 140, 150, 176, 206, 216, 234, 240] 170036138808740379645470081: [0, 2, 12, 30, 32, 72, 96, 110, 120, 126, 132, 168, 170, 176, 180, 188, 210, 230, 252] Всего один период проверяется. Но около 4 миллиардов формул не шуточки. В общем, что-то сильно застряла программа на этом периоде. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Приближение к ключевой 17-ке очень красивое: три правильных элемента в начале кортежа, три правильных элемента в конце кортежа и три правильных элемента в центре кортежа. (04:40) gp > \r spg_by_centre.gp [9] 1 170036138805489978259586567: [ 0, 6, 24, 62, 84, 86,102,114,120,126,140,150,176,206,216,234,240] [ 0, 0, 0, 26, 18, 2, 12, 0, 0, 0,-10, -6, 2, 2, 0, 0, 0] ВотЪ! А это приближение к 19-ке с минимальным диамтером с центральной тойкой и с 8 правильными элементами (04:58) gp > \r spg_by_centre_19.gp [8] 1 170036138808740379645470081: [ 0, 2, 12, 30, 32, 72, 96,110,120,126,132,168,170,176,180,188,210,230,252] [ 0, -4, 0, 0,-10, 0, 6, 14, 0, 0, 0, 12, 8, -4,-30,-34,-30,-16, 0] Да, приближения к 19-ке с минимальным диаметром пока сильно дырявые. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Неплохое приближение к ключевой 17-ке с центральной пятёркой; 10 правильных элементов, 7 "дырок" 6996831464879924792980943: [0, 24, 36, 38, 50, 54, 90, 114, 120, 126, 150, 156, 174, 216, 230, 234, 240] [0, 18, 12, 2, -16, -30, 0, 0, 0, 0, 0, 0, 0, 12, 14, 0, 0] В развёрнутом виде {6996831464879924792980943, *6996831464879924792980967, *6996831464879924792980979, *6996831464879924792980981, *6996831464879924792980993, *6996831464879924792980997, 6996831464879924792981033, 6996831464879924792981057, 6996831464879924792981063, 6996831464879924792981069, 6996831464879924792981093, 6996831464879924792981099, 6996831464879924792981117, *6996831464879924792981159, *6996831464879924792981173, 6996831464879924792981177, 6996831464879924792981183} |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
gris продолжает сомневаться. Его последнее письмо полностью Вот это меня и смутило, что ключевая с дырками всё равно ключевая. А смутило совсем недавно, когда я ознакомился с вашим алгоритмом по совместному поиску 17-к и 19-к по формулам паттерна 19-252 сгенерированных по периоду p#. Я так понял, что центральная тройка 17 совпадает с центральной тройкой 19 и сама середина совпадает и находится в фиксированном месте. Поэтому я и решил проверять из предварительно. Ускорение маленькое, разумеется, но вы усомнились в правильности подхода. Поэтому я решил, что вы не привязываете ключевую 17-ку к формуле. 17-ка может быть сдвинута на 2,4,6 относительно её положенного места и такие 17-ки нашлись. Я их вам присылал. Эти 17-ки совпадают с паттерном по краям и в центральной тройке. Но они не могут быть матрёшечными. Поэтому бесполезны. Ваша программа не может их найти. Моя тем более. Просто они представляют собой интересный экспонат, каких любители собирают в огромных количествах. Программа находит приближения к центральной 17-ке (которая названа мной ключевой, поскольку она определяют судьбу 19-ки с минимальным диаметром), но не все находит, некоторые теряет. Приближения - это кортежи с несколькими "дырками" (говорим ещё: дырявые), то есть с неправильными элементами, точнее: с элементами, не соответствующими паттерну. Программа находит также приближения к 19-ке с минимальным диаметром, тоже с несколькими "дырками". И такие приближения не все находит, некоторые теряет. Полную ключевую 17-ку программа тоже может потерять; такой пример был показан в тесте, когда известная ключевая 17-ка Врублевского программой не найдена. Но вот полную 19-ку с минимальным диаметром программа потерять не может! Потому что программа написана именно по паттерну для 19-ки с минимальным диаметром. Ну, а в 19-ке с минимальным диаметром будет неизбежно сидеть ключевая 17-ка, куда ж она денется! К сожалению, у нас пока нет ни одной 19-ки с минимальным диаметром, чтобы протестировать программу и убедиться в последнем утверждении. Я запустила тестирование программы для известной 19-ки, вот этой 7325015925425379457 0, 6, 30, 90, 126, 132, 150, 162, 216, 246, 276, 330, 342, 360, 366, 402, 462, 486, 492 Эта 19-ка найдена программой Белышева в BOINC-проекте SPT. Как видим, диаметр у этой 19-ки не минимальный. Но программе ведь всё равно, какой задан паттерн 19-ки и соответственно - какой у неё диаметр. А поэтому программа должна найти эту 19-ку и сидящую в ней центральную 17-ку (матрёшечную). Тест работает на черепашке. Обрабатывается всего один период 41#. Понятно, что диапазон поиска я подобрала так, чтобы известная 19-ка в него попала. Ждём-с. PS. Эти 17-ки совпадают с паттерном по краям и в центральной тройке. Но они не могут быть матрёшечными. Поэтому бесполезны. Дырявые ключевые 17-ки не могут быть матрёшечными - по определению. Матрёшечной может быть только полная ключевая 17-ка (а может и не быть!). Ну, насчёт "Поэтому бесполезны." я не согласна. У г. Петухова очень много дырявых 19-ок с минимальным диаметром (смотрите тему "Симметричные кортежи из последовательных простых чисел" на форуме dxdy.ru). Эти приближения бесполезны? Тогда зачем г. Петухов их ищет? Искал бы только полную 19-ку с минимальным диаметром и никаких дырявых, и даже никаких "почти не дырявых"! Вы с г. Петуховым в контакте, поинтересуйтесь у него, нафиг нужны все эти дырявые 19-ки :) А я вам скажу: они очень даже нужны! Наконец, я уже писала выше, что ключевые 17-ки, даже если они не матрёшечные, имеют самостоятельную ценность. За 9 лет существования моего проекта ключевых 17-ок найдено всего 8 штук! Матрёшечная ключевая 17-ка пока не найдена. Ещё нюанс: ключевая 17-ка может сматрёшничать (по вашему выражению) в 19-ку с другим диаметром (не минимальным). От этого она не перестанет быть ключевой и матрёшечной. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Кстати, для 19-ки с минимальным диамтром на периоде 41# 159252480 formulae expected А для 19-ки, для которой выполняется тестирование, на периоде 41# 306708480 formulae expected Поэтому обработка даже одного периода идёт так долго: почти в два раза больше формул. Ой, а сколько приближений находится и к центральной 17-ке, и к 19-ке! Море! Но количество правильных элементов в этих приближениях пока 5-6-7-8. Очень надеюсь, что программа найдёт известную тестируемую 19-ку и, разумеется, сидящую в ней центральную 17-ку. Черепашка пыхтит. Интересно, сколько времени ей потребуется на этот тест. Можно было выполнить тест на периоде 37#, всё равно результат должен быть правильный. Но теперь уже жалко прерывать, пусть работает. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Тест завершился, время выполнения time = 2h, 10min, 31,484 ms. И вот они 17-ка и 19-ка 7325015925425379463: [0, 24, 84, 120, 126, 144, 156, 210, 240, 270, 324, 336, 354, 360, 396, 456, 480] 7325015925425379463: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 17 7325015925425379463: [0, 24, 84, 120, 126, 144, 156, 210, 240, 270, 324, 336, 354, 360, 396, 456, 480] 7325015925425379457: [0, 6, 30, 90, 126, 132, 150, 162, 216, 246, 276, 330, 342, 360, 366, 402, 462, 486, 492] 7325015925425379457: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 19 7325015925425379457: [0, 6, 30, 90, 126, 132, 150, 162, 216, 246, 276, 330, 342, 360, 366, 402, 462, 486, 492] Всё. как положено, иначе и быть не могло. Так что, gris, не переживайте, программа работает правильно. А что ищет "бесполезные" дырявые 17-ки и 19-ки, - это мне так нужно. Для меня они не бесполезные. |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Покажу тестируемую программу \\r C:/GRIS/formulae_41_19_17.gp \l formulae_41_19_17_new_test_res.txt; default(parisizemax,10^8); default(timer,1); { \\enter pattern pt=[0, 6, 30, 90, 126, 132, 150, 162, 216, 246, 276, 330, 342, 360, 366, 402, 462, 486, 492]; pt17=[0, 24, 84, 120, 126, 144, 156, 210, 240, 270, 324, 336, 354, 360, 396, 456, 480]; w=41; np1=24075; print(np1," from number"); np2=24075; print(np2," to number"); central=3; \\ end of data pl=#pt; nw=primepi(w); printf("%d \n",pt); print("patterns length ",pl); prs=primes(nw); period=vecprod(prs); print(period," period"); vp=vector(np2-np1+1, i, period*(np1-1+i)); lvp=#vp; printf("search in %d (%.1E) - %d (%.1E)\n", vp[1],vp[1],vp[lvp]+period,vp[lvp]+period); cp=vector(central,i,pt[pl\2-central\2+i]); printf("central %d: %d\n", central,cp); printf("prove by %d#: ",prs[nw]);print(prs); vmy=vector(40); pat1=vector(17); pat2=vector(19); pat1[1]=0; pat2[1]=0; lpr=1; wd=vector(nw); for( ip=1,nw, rip=[]; for( r=1,prs[ip]-1, for( i=1,pl, if( (r+pt[i])%prs[ip]==0, next(2))); rip =concat(rip,r) ); lpr=lpr*#rip; wd[ip]=rip; ); \\for ip print(lpr," formulae expected"); k=0; forvec(v=vector(#wd,i,[1,#wd[i]]), k++; form=lift(chinese( vector( #wd,j,Mod( wd[j][v[j]], prs[j]) ) )); \\ начало проверки кортежа foreach(vp,bpp, bpt=form+bpp; if(ispseudoprime(bpt+6) && ispseudoprime(bpt+486), l=0; forprime(p=bpt+6,bpt+486, l++; vmy[l]=p; ); if(l==17, for(m=2,17, pat1[m]=vmy[m]-vmy[1]; ); if(pat1[8]==210 && pat1[9]==240 && pat1[10]==270, print(vmy[1],": ",pat1); res=pat1-pt17; print(vmy[1],": ",res); print(vecsum(vector(#res,i,res[i]==0))); print(); if(pat1==pt17, print(vmy[1],": ",pat1); ););); );\\ if if(ispseudoprime(bpt) && ispseudoprime(bpt+492), l=0; forprime(p=bpt,bpt+492, l++; vmy[l]=p; ); if(l==19, for(m=2,19, pat2[m]=vmy[m]-vmy[1]; ); if(pat2[9]==216 && pat2[10]==246 && pat2[11]==276, print(vmy[1],": ",pat2); res=pat2-pt; print(vmy[1],": ",res); print(vecsum(vector(#res,i,res[i]==0))); print(); if(pat2==pt, print(vmy[1],": ",pat2); ););); );\\ if );\\ foreach \\ конец проверки кортежа );\\ forvec } gris этот тест был специально для вас :) |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Ещё одно плохонькое приближение к 19-ке с минимальным диаметром - с центральной тройкой и 8 правильными элементами 6996831472194688649044187: [0, 2, 20, 30, 42, 62, 92, 110, 120, 126, 132, 170, 176, 180, 182, 192, 222, 230, 252] 6996831472194688649044187: [0, -4, 8, 0, 0, -10, 2, 14, 0, 0, 0, 14, 14, 0, -28, -30, -18, -16, 0] 8 И ещё 6996831491043601321980947: [0, 6, 20, 44, 86, 90, 96, 116, 120, 126, 132, 144, 156, 162, 176, 224, 236, 240, 252] 6996831491043601321980947: [0, 0, 8, 14, 44, 18, 6, 20, 0, 0, 0, -12, -6, -18, -34, 2, -4, -6, 0] 6 |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
А это приближение к 19-ке с минимальным диаметром чуть получше - с центральной тройкой и 9 правильными элементами 6997753410085240613684801: [0, 6, 30, 42, 56, 72, 90, 98, 120, 126, 132, 152, 170, 180, 182, 210, 222, 240, 252] 6997753410085240613684801: [0, 0, 18, 12, 14, 0, 0, 2, 0, 0, 0, -4, 8, 0, -28, -12, -18, -6, 0] 9 Приближения к 19-ке с минимальным диаметром редко встречаются у меня, да к тому же сильно дырявые. По метрике gris 72592 6997753410085240613684801 |
Send message Joined: 6 Apr 17 Posts: 14339 Credit: 0 RAC: 0 |
Ещё одно приближение к 19-ке с минимальным диаметром с 9 правильными элементами 6997753425135953394254267: [0, 6, 20, 30, 32, 74, 90, 96, 120, 126, 132, 134, 144, 146, 170, 200, 204, 236, 252] 6997753425135953394254267: [0, 0, 8, 0, -10, 2, 0, 0, 0, 0, 0, -22, -18, -34, -40, -22, -36, -10, 0] 9 По метрике gris 85888 6997753425135953394254267 |
©2024 (C) Progger