Message boards :
Cafe :
К штурму 19-ки
Message board moderation
Author | Message |
---|---|
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Тут намедни разговорились с gris о паттернах. Он мне картиночку прислал, как паттерны красиво строятся. Я картиночку не поняла, но вот о паттернах поговорить очень даже захотела :) Поговорили :) Результатом явилась программа, написанная gris, генерации паттернов для симметричных кортежей длины 19 из последовательных простых чисел с заданным диаметром. Диаметр был задан 468. Ну, задача была мной поставлена подробно, за исключением одного аспекта: проверка допустимости паттерна. Этот аспект мной забыт начисто за давностью лет. У меня была программа генерации паттернов, я ею генерировала паттерны, в том числе и для 19-ки. Вот выложенные паттерны на форуме dxdy.ru https://dxdy.ru/post1041990.html#p1041990 Эти паттерны сгенерированы моей программой. Но программу я потеряла, не могу её найти. Может, она была у меня на старом компьютере, который давно сдох. В общем, процедура проверки паттернов на допустимость для меня пока в тумане. Но... в моей программе генерации паттернов эта процедура выполнялась сразу же для каждого паттерна. То есть на выходе получались только допустимые паттерны. Теперь задаю этот вопрос gris... и внятного ответа не получаю. То есть, вопрос такой: гарантирует ли он, что все паттерны, сгенерированные его программой, допустимые? Очень простой вопрос! gris прислал мне свою программу генерации паттернов с диаметром 468. Я выполнила её на Ахиллесе, за 13 минут программа выдала 4272 паттерна. Много! Вот программа gris { p=vector(19); p[1]=0; forstep(diam=468,468,12, k=0; k5=0; n=diam\12; m=n-8; d2=diam\2; for(i1=1, m, j2=i1; for(i2=1, m+1-j2,j3=j2+i2; for(i3=1, m+2-j3,j4=j3+i3; for(i4=1, m+3-j4,j5=j4+i4; for(i5=1, m+4-j5,j6=j5+i5; for(i6=1, m+5-j6,j7=j6+i6; for(i7=1, m+6-j7,j8=j7+i7; for(i8=1, m+7-j8,j9=j8+i8; for(i9=1, m+8-j9, if(i1+i2+i3+i4+i5+i6+i7+i8+i9==n,k++; p[2]=6*j2; p[3]=6*j3; p[4]=6*j4; p[5]=6*j5; p[6]=6*j6; p[7]=6*j7; p[8]=6*j8; p[9]=6*j9; p[10]=d2; p[11]=diam-6*j9; p[12]=diam-6*j8; p[13]=diam-6*j7; p[14]=diam-6*j6; p[15]=diam-6*j5; p[16]=diam-6*j4; p[17]=diam-6*j3; p[18]=diam-6*j2; p[19]=diam; \\ wt=1; forprime( w=5,19, ws=w-1; for (s=1,w-1, for ( i=2,19, if( (s+p[i])%w==0, ws--; break ) ); ); wt=wt*ws; if(wt==0, break); ); if( wt!=0, k5++; for( i=1,19, print1(p[i]," "));print(" ") ); )))))))))); print("for tuple diameter=",diam," number of pretuples=",k, " good:", k5) )} |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Итак, паттерны сгенерированы. Начинаю проверять их на допустимость. Для этого у меня есть программка господина Петухова, скопированная на форуме dxdy.ru t=Set([0, 90, 114, 144, 168, 174, 198, 210, 228, 234, 240, 258, 270, 294, 300, 324, 354, 378, 468]); prmax=t[#t]; pr=primes([3,prmax]); { print("n=", #t, ": ", t); m=matrix(#pr,prmax+1); for(i=1,#pr, for(j=2,pr[i], m[i,j]=9999); m[i,1]=0; for(j=pr[i],prmax, m[i,j+1]=0); for(j=2,#t, m[i,pr[i]-t[j]%pr[i]+1]=0); print1(pr[i], " "); nm=0; for(j=1,pr[i], if(m[i,j]!=0, nm++)); if(nm==0, print("-- ERROR! Not avaible modules."); break); ); print; } Программа работает, паттерны проверяет, выдаёт ошибку, если паттерн недопустимый (надеюсь, что всё правильно проверяет), но! Обратите внимание на программу, паттерн (один!) записывается непосредственно в программу и только этот (один!) паттерн проверяется. Замечательно! Не правда ли? Если мне надо проверить на допустимость 4272 паттерна, я должна вручную ввести каждый паттерн в программу и выполнить программу 4272 раза. Написала gris вопрос: можно ли так изменить программу господина Петухова, чтобы она читала массив паттернов из входного файла, проверяла паттерны и записывала в выходной файл недопустимые паттерны? Ответа не получила. Я не знаю, как в PARI/GP осуществляется ввод массива из входного файла. gris, похоже, тоже не знает. В общем, застряли на проверке паттернов на допустимость. Повторю: вполне возможно, что в программе gris эта проверка выполняется, но он не даёт утвердительного ответа, что гарантирует допустимость всех сгенерированных его программой паттернов. По программе господина Петухова я проверила 10 паттернов в начале списка и 6 паттернов в конце списка, все они оказались допустимыми, согласно этой программе. Это результат работы программы господина Петухова ? \r a10.txt n=19: [0, 90, 114, 144, 168, 174, 198, 210, 228, 234, 240, 258, 270, 294, 300, 3 24, 354, 378, 468] 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 ? Проверяемый паттерн в выводе указан. Этот паттерн допустимый, так как программа не выдала ошибку. И что же мне теперь делать с этой огромной кучей паттернов с диаметром 468? Как их все проверить на допустимость? |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Вчера открыла тему на форуме Math Help Planet https://mathhelpplanet.com/viewtopic.php?f=44&t=79172 Там, похоже, PARI/GP никто не знает. Господа! Если кто-то большой знаток PARI/GP, пожалуйста, напишите мне natalimak1@yandex.ru |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Кстати, штурм 19-ки в данный момент работает в ручном проекте. Смотрите темы https://boinc.progger.info/odlk/forum_thread.php?id=233 https://boinc.progger.info/odlk/forum_thread.php?id=224 Ищется возможность запуска BOINC-проекта, смотрите тему https://boinc.progger.info/odlk/forum_thread.php?id=236 |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Кое-что придумала для проверки допустимости паттернов в пакете программой господина Петухова. Пока просто дам ссылку на сообщение на форуме MHP https://mathhelpplanet.com/viewtopic.php?p=458277#p458277 Сейчас попробую добавить паттернов в программу. Получилось! Конечно, это примитив ужасный, но работает. Сейчас вставила в программу 36 паттернов {a=[0, 18, 24, 30, 48, 84, 90, 108, 150, 234, 318, 360, 378, 384, 420, 438, 444, 450, 468]; b=[0, 18, 24, 30, 48, 84, 90, 108, 174, 234, 294, 360, 378, 384, 420, 438, 444, 450, 468]; c=[0, 18, 24, 30, 48, 84, 90, 108, 228, 234, 240, 360, 378, 384, 420, 438, 444, 450, 468]; d=[0, 18, 24, 30, 48, 84, 90, 150, 168, 234, 300, 318, 378, 384, 420, 438, 444, 450, 468]; e=[0, 18, 24, 30, 48, 84, 90, 150, 174, 234, 294, 318, 378, 384, 420, 438, 444, 450, 468]; f=[0, 18, 24, 30, 48, 84, 90, 150, 228, 234, 240, 318, 378, 384, 420, 438, 444, 450, 468]; g=[0, 18, 24, 30, 48, 84, 90, 168, 228, 234, 240, 300, 378, 384, 420, 438, 444, 450, 468]; h=[0, 18, 24, 30, 48, 84, 90, 174, 228, 234, 240, 294, 378, 384, 420, 438, 444, 450, 468]; k=[0, 18, 24, 30, 48, 84, 108, 114, 150, 234, 318, 354, 360, 384, 420, 438, 444, 450, 468]; l=[0, 18, 24, 30, 48, 84, 108, 114, 174, 234, 294, 354, 360, 384, 420, 438, 444, 450, 468]; o=[0, 18, 24, 30, 48, 84, 108, 114, 198, 234, 270, 354, 360, 384, 420, 438, 444, 450, 468]; p=[0, 18, 24, 30, 48, 84, 108, 114, 228, 234, 240, 354, 360, 384, 420, 438, 444, 450, 468]; q=[0, 18, 24, 30, 48, 84, 108, 150, 168, 234, 300, 318, 360, 384, 420, 438, 444, 450, 468]; r=[0, 18, 24, 30, 48, 84, 108, 150, 174, 234, 294, 318, 360, 384, 420, 438, 444, 450, 468]; u=[0, 18, 24, 30, 48, 84, 108, 150, 198, 234, 270, 318, 360, 384, 420, 438, 444, 450, 468]; x=[0, 18, 24, 30, 48, 84, 108, 150, 228, 234, 240, 318, 360, 384, 420, 438, 444, 450, 468]; y=[0, 18, 24, 30, 48, 84, 108, 168, 228, 234, 240, 300, 360, 384, 420, 438, 444, 450, 468]; z=[0, 18, 24, 30, 48, 84, 108, 174, 228, 234, 240, 294, 360, 384, 420, 438, 444, 450, 468]; a1=[0, 18, 24, 30, 48, 84, 108, 198, 228, 234, 240, 270, 360, 384, 420, 438, 444, 450, 468]; b1=[0, 18, 24, 30, 48, 84, 114, 150, 174, 234, 294, 318, 354, 384, 420, 438, 444, 450, 468]; c1=[0, 18, 24, 30, 48, 84, 114, 150, 198, 234, 270, 318, 354, 384, 420, 438, 444, 450, 468]; d1=[0, 18, 24, 30, 48, 84, 114, 150, 228, 234, 240, 318, 354, 384, 420, 438, 444, 450, 468]; e1=[0, 18, 24, 30, 48, 84, 114, 174, 198, 234, 270, 294, 354, 384, 420, 438, 444, 450, 468]; f1=[0, 18, 24, 30, 48, 84, 114, 174, 228, 234, 240, 294, 354, 384, 420, 438, 444, 450, 468]; g1=[0, 18, 24, 30, 48, 84, 114, 198, 228, 234, 240, 270, 354, 384, 420, 438, 444, 450, 468]; h1=[0, 18, 24, 30, 48, 84, 150, 168, 228, 234, 240, 300, 318, 384, 420, 438, 444, 450, 468]; k1=[0, 18, 24, 30, 48, 84, 150, 174, 198, 234, 270, 294, 318, 384, 420, 438, 444, 450, 468]; l1=[0, 18, 24, 30, 48, 84, 150, 174, 228, 234, 240, 294, 318, 384, 420, 438, 444, 450, 468]; o1=[0, 18, 24, 30, 48, 84, 150, 198, 228, 234, 240, 270, 318, 384, 420, 438, 444, 450, 468]; p1=[0, 18, 24, 30, 48, 84, 168, 174, 228, 234, 240, 294, 300, 384, 420, 438, 444, 450, 468]; q1=[0, 18, 24, 30, 48, 84, 174, 198, 228, 234, 240, 270, 294, 384, 420, 438, 444, 450, 468]; r1=[0, 18, 24, 30, 48, 90, 108, 114, 168, 234, 300, 354, 360, 378, 420, 438, 444, 450, 468]; u1=[0, 18, 24, 30, 48, 90, 108, 114, 174, 234, 294, 354, 360, 378, 420, 438, 444, 450, 468]; x1=[0, 18, 24, 30, 48, 90, 108, 114, 198, 234, 270, 354, 360, 378, 420, 438, 444, 450, 468]; y1=[0, 18, 24, 30, 48, 90, 108, 150, 168, 234, 300, 318, 360, 378, 420, 438, 444, 450, 468]; z1=[0, 18, 24, 30, 48, 90, 108, 150, 174, 234, 294, 318, 360, 378, 420, 438, 444, 450, 468]; for(s=1,36, if (s==1, v=a); if (s==2, v=b); if (s==3, v=c); if (s==4, v=d); if (s==5, v=e); if (s==6, v=f); if (s==7, v=g); if (s==8, v=h); if (s==9, v=k); if (s==10, v=l); if (s==11, v=o); if (s==12, v=p); if (s==13, v=q); if (s==14, v=r); if (s==15, v=u); if (s==16, v=x); if (s==17, v=y); if (s==18, v=z); if (s==19, v=a1); if (s==20, v=b1); if (s==21, v=c1); if (s==22, v=d1); if (s==23, v=e1); if (s==24, v=f1); if (s==25, v=g1); if (s==26, v=h1); if (s==27, v=k1); if (s==28, v=l1); if (s==29, v=o1); if (s==30, v=p1); if (s==31, v=q1); if (s==32, v=r1); if (s==33, v=u1); if (s==34, v=x1); if (s==35, v=y1); if (s==36, v=z1); t=Set(v); prmax=t[#t]; pr=primes([3,prmax]); print("n=", #t, ": ", t); m=matrix(#pr,prmax+1); for(i=1,#pr, for(j=2,pr[i], m[i,j]=9999); m[i,1]=0; for(j=pr[i],prmax, m[i,j+1]=0); for(j=2,#t, m[i,pr[i]-t[j]%pr[i]+1]=0); print1(pr[i], " "); nm=0; for(j=1,pr[i], if(m[i,j]!=0, nm++)); if(nm==0, print("-- ERROR! Not avaible modules."); break); ); print(); print(v); ) } Цикл по паттернам организовала искусственный. Все эти 36 паттернов проверились. Без понятия, как записать в программу массив паттернов (векторов) и организовать по этому массиву нормальный цикл (перебор). Господа! Жду вашу подсказку :) |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Кстати, если верить программе господина Петухова, все 36 проверенных паттернов допустимые, ибо ошибок программа не выдала. Можно верить? :) Ну, господин Петухов ведь Супермен, а Супермены не ошибаются! |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Вот окончание проверки 36 паттернов из консоли . . . . . . . . . n=19: [0, 18, 24, 30, 48, 90, 108, 114, 198, 234, 270, 354, 360, 378, 420, 438, 444, 450, 468] 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 [0, 18, 24, 30, 48, 90, 108, 114, 198, 234, 270, 354, 360, 378, 420, 438, 444, 4 50, 468] n=19: [0, 18, 24, 30, 48, 90, 108, 150, 168, 234, 300, 318, 360, 378, 420, 438, 444, 450, 468] 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 [0, 18, 24, 30, 48, 90, 108, 150, 168, 234, 300, 318, 360, 378, 420, 438, 444, 4 50, 468] n=19: [0, 18, 24, 30, 48, 90, 108, 150, 174, 234, 294, 318, 360, 378, 420, 438, 444, 450, 468] 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 [0, 18, 24, 30, 48, 90, 108, 150, 174, 234, 294, 318, 360, 378, 420, 438, 444, 4 50, 468] ? У меня проверяемый паттерн два раза выводится, а если убираю вывод в конце, тогда ни разу не выводится. Ну, пусть лучше будет два раза, чем ни разу :) Как там в песенке поётся: "Лучше 40 раз по разу, чем ни разу 40 раз!" :))) PS. В консоли видим проверку этих трёх последних паттернов x1=[0, 18, 24, 30, 48, 90, 108, 114, 198, 234, 270, 354, 360, 378, 420, 438, 444, 450, 468]; y1=[0, 18, 24, 30, 48, 90, 108, 150, 168, 234, 300, 318, 360, 378, 420, 438, 444, 450, 468]; z1=[0, 18, 24, 30, 48, 90, 108, 150, 174, 234, 294, 318, 360, 378, 420, 438, 444, 450, 468]; В принципе, ужасный примитивизм можно продолжить и дальше. То есть записать в программу все 4272 паттерна и организовать по ним искусственный цикл. Но хотелось бы что-то более-менее грамотное применить. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Кстати, о птичках... Я с этой болезнью программистов уже лет 15 борюсь :) Программируют некую процедуру: проверить на что-то некоторый объект. При этом в программе проверяется только один объект! А если мне надо проверить 1000 объектов, я должна выполнить программу 1000 раз, при этом ещё каждый раз ручками ввести этот объект в программу (как в программе господина Петухова). Ну, надо проверить - выполняй программу N раз! Какие проблемы? :)) |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Вставила в массив один недопустимый паттерн с таким же диаметром - 468, программа его забраковала n=19: [0, 18, 24, 54, 60, 78, 138, 150, 198, 234, 270, 318, 330, 390, 408, 414, 444, 450, 468] 3 5 7 -- ERROR! Not avaible modules. [0, 18, 24, 54, 60, 78, 138, 150, 198, 234, 270, 318, 330, 390, 408, 414, 444, 4 50, 468] Правильно забраковала, разбирается :) |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Ввела в программу 90 паттернов, программа их успешно проверила (за несколько секунд), ошибочных паттернов не выдала. Кстати, вставила в программу вывод результатов проверки в выходной файл. В этом файле и смотрю наличие ошибок. Пока их нет. Ну, так я могу и все 4272 паттерна ручками ввести в программу :) Подождать подсказку что ли? Ой, господин Петухов как увидит это, осмеёт глупую шестиклассницу вдрызг! Так сделал бы нормальную программу, не пришлось бы глупой шестикласснице огород городить. А у gris, похоже, все паттерны допустимые, только он в этом не хочет признаться :)) Цитата из письма gris Что значит, что паттерн не допущен? Что при любом начальном простом числе массив чисел образованный паттерном будет содержать хотя бы одно число кратное 2,3,5,7,11. Первая фраза как-то понятна. А вот дальше... мрак. То есть допустимый паттерн ещё ничего не гарантирует! Так? А это совсем не понимаю Для этого нужно вносить в паттерн и требование к остаткам %5 %7 и тд первого числа массива. Первое число кортежа, образуемого паттерном, всегда простое - по определению; других первых чисел кортежа мы просто не рассматриваем, у нас кортеж должен состоять из последовательных простых чисел. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Наверняка в программу можно ввести массив векторов (паттернов) - сразу все, а не по одному, и не по 20, и не по 90 - и сделать их нормальный перебор (проверку) в нормальном цикле. Только я не знаю, как это сделать. Подсказка пока не пришла :) И на форуме MHP не отвечают знатоки PARI/GP (есть ли они там?). Отвечает один форумчанин, но он не знает язык. А методом тыка много не сделаешь. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Ни от кого ничего не дождалась. gris вот что написал Иногда мне кажется, что вы просто играете. вы написали целую кучу программ и вдруг говорите, что не знаете, как вводить данные из текстового файла. Угу! Играю в куклы на 73-м году жизни! Да, я не знаю, как вводить в программу на PARI данные из входного файла. [На Бейсике знаю, как.] Кстати, не так давно спрашивала об этом у gris. Но тогда мне надо было ввести в программу из входного файла всего два числа. gris на этот вопрос ответил. Это было понятно. А сейчас надо ввести в программу из входного файла много векторов, конкретно - 4272 вектора. Спрашиваю gris: "А вы знаете, как ввести этот массив векторов из входного файла?" Ответа не получаю. Значит, и gris не знает. А кто-нибудь знает? Господин Петухов, наверное, знает, но он не скажет :) Может быть, надо ввести матрицу 19х4272 (или 4272х19, то есть количество строк - 4272, количество столбцов - 19), а в программе потом как-то преобразовать эту матрицу в массив векторов? Матрицу-то можно ввести из входного файла? Ладно, я ручками введу прямо в программу. Вот на данный момент уже ввела 108 паттернов, то есть записала их прямо в программу. Все эти паттерны программа проверила. Ошибок не выдала. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Далее gris спрашивает А сколько паттернов по каждому диаметру являются допустимыми? Должна же быть какая-то статистика за столько лет. Конкретно для 19-ок мной были найдены теоретические паттерны, которые выложены на форуме dxdy.ru https://dxdy.ru/post1041990.html#p1041990 Все эти паттерны допустимые. Для бОльших диаметров я не искала паттерны для 19-ок. Поэтому никакой статистики нет. Господин Петухов писал программу генерации паттернов для 19-ок. Я не знаю, для каких диаметров он генерировал паттерны и какова статистика теоретически допустимых паттернов. Ой! Вот читаю господина Петухова и прям дикий восторг :))) https://dxdy.ru/post1041795.html#p1041795 Всего лишь вдвое? "Маловато будет!"(c) Лучше так: берём вычеты по первым простым числам и получаем, что из каждых последовательных 510510 чисел надо проверить лишь 64 варианта. Ускорение почти в 8000 раз, а не вдвое. Можно пойти и дальше, если памяти не жалко, то построив вычеты ещё для следующих чисел, получим 150000 вариантов для интервала 2е11, ускорение уже в 1.35 миллиона раз! А памяти надо всего лишь чуть больше мегабайта. Выделив же 400МБ можно для интервала 3.2е14 проверять всего лишь 48е6 вариантов, что даёт ускорение почти в 7 миллионов раз. Вот только непонятно: а где же 19-ка? При таком-то ускорение уже в 1.35 миллиона раз! Это ж... прямо представить трудно! :))) ... такая программа уже написана, и даже работает, для любого паттерна. В-о-о-о-т! Работает ДЛЯ ЛЮБОГО ПАТТЕРНА! Понятно вам? Сколько шума, сколько хвастовства! А результата и нет! Ну, а глупая Макарова через 8 лет всё паттерны генерирует :) И никак с ними не разберётся. Что ж с неё взять? Какие результаты? Однако результаты есть, и не мало! Работали два BOINC-проекта, которые были запущены с подачи глупой Макаровой. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Далее в том же сообщении господин Петухов писал Какой смысл заморачиваться с большими числами, если даже с использованием primesieve никак не доберёмся даже до 1е17? Никакого. Это было написано 31 июля 2015 г. Сейчас добрались и до 1е17 и много дальше. Ахиллес-3 сейчас продолжает счёт с точки, на которой остановился BOINC-проект TBEG. Цитата Первый интервал начала с последней найденной в BOINC-проекте TBEG 18-ки На Ахиллесе проверяются уже диапазоны, следующие за указанными. Это программа Алексея Белышева, в которой как раз задействована генерация простых чисел программой primesieve. Это брутфорс. Если искать кортежи по паттернам, то да - программа генерации простых чисел не нужна. Это и ежу понятно. Нужна только проверка чисел на простоту, что прекрасно делает PARI. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
А вот ещё господин Петухов выдал Ну и ещё удобно, что интервалы можно проверять независимо, т.е. запускать сколько угодно (пока памяти хватает) копий программы для разных интервалов параллельно, даже на однозадачном однопоточном компьютере. Очень интересно! Не правда ли? И с какой скоростью будут работать программы, запущенные, скажем, в 8 потоков, "на однозадачном однопоточном компьютере"??? Сейчас-то я запускаю на Ахиллесах несколько копий программы, так Ахиллесы имеют многоядерные процессоры! Моя черепашка имеет всего 2 ядра. Я на ней раньше запускала и 3 программы, и 4 программы (и более!) одновременно. Да, они все работают, но скорость резко падает. Максимальная скорость у черепашки при работе 1-2 потоков (программ). |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Итак, 108 паттернов из сгенерированных программой gris 4272 паттернов проверила на допустимость программой господина Петухова вручную, то есть просто записала эти паттерны в программу и организовала искусственный цикл по их проверке. Пока на этом остановлюсь. Покажу несколько проверенных паттернов из 108 0 18 24 30 48 84 90 108 150 234 318 360 378 384 420 438 444 450 468 0 18 24 30 48 84 90 108 174 234 294 360 378 384 420 438 444 450 468 0 18 24 30 48 84 90 108 228 234 240 360 378 384 420 438 444 450 468 0 18 24 30 48 84 90 150 168 234 300 318 378 384 420 438 444 450 468 0 18 24 30 48 84 90 150 174 234 294 318 378 384 420 438 444 450 468 0 18 24 30 48 84 90 150 228 234 240 318 378 384 420 438 444 450 468 0 18 24 30 48 84 90 168 228 234 240 300 378 384 420 438 444 450 468 0 18 24 30 48 84 90 174 228 234 240 294 378 384 420 438 444 450 468 0 18 24 30 48 84 108 114 150 234 318 354 360 384 420 438 444 450 468 0 18 24 30 48 84 108 114 174 234 294 354 360 384 420 438 444 450 468 0 18 24 30 48 84 108 114 198 234 270 354 360 384 420 438 444 450 468 0 18 24 30 48 84 108 114 228 234 240 354 360 384 420 438 444 450 468 0 18 24 30 48 84 108 150 168 234 300 318 360 384 420 438 444 450 468 0 18 24 30 48 84 108 150 174 234 294 318 360 384 420 438 444 450 468 0 18 24 30 48 84 108 150 198 234 270 318 360 384 420 438 444 450 468 0 18 24 30 48 84 108 150 228 234 240 318 360 384 420 438 444 450 468 0 18 24 30 48 84 108 168 228 234 240 300 360 384 420 438 444 450 468 0 18 24 30 48 84 108 174 228 234 240 294 360 384 420 438 444 450 468 0 18 24 30 48 84 108 198 228 234 240 270 360 384 420 438 444 450 468 0 18 24 30 48 84 114 150 174 234 294 318 354 384 420 438 444 450 468 0 18 24 30 48 84 114 150 198 234 270 318 354 384 420 438 444 450 468 0 18 24 30 48 84 114 150 228 234 240 318 354 384 420 438 444 450 468 . . . . . . . . . . . 0 18 24 30 84 114 150 174 228 234 240 294 318 354 384 438 444 450 468 0 18 24 30 84 114 150 198 228 234 240 270 318 354 384 438 444 450 468 0 18 24 30 84 114 174 198 228 234 240 270 294 354 384 438 444 450 468 0 18 24 30 84 150 168 174 228 234 240 294 300 318 384 438 444 450 468 0 18 24 30 84 150 174 198 228 234 240 270 294 318 384 438 444 450 468 0 18 24 30 90 108 114 168 174 234 294 300 354 360 378 438 444 450 468 0 18 24 30 90 108 114 168 198 234 270 300 354 360 378 438 444 450 468 0 18 24 30 90 108 114 174 198 234 270 294 354 360 378 438 444 450 468 0 18 24 30 90 108 150 168 174 234 294 300 318 360 378 438 444 450 468 0 18 24 30 90 108 150 168 228 234 240 300 318 360 378 438 444 450 468 0 18 24 30 90 108 150 174 228 234 240 294 318 360 378 438 444 450 468 0 18 24 30 90 108 168 174 198 234 270 294 300 360 378 438 444 450 468 0 18 24 30 90 108 168 174 228 234 240 294 300 360 378 438 444 450 468 0 18 24 30 90 114 168 174 198 234 270 294 300 354 378 438 444 450 468 0 18 24 30 90 150 168 174 228 234 240 294 300 318 378 438 444 450 468 В принципе точно так же могу проверить и все оставшиеся паттерны, но это будет долго и нудно. Пока попробую генерировать паттерны с другими диаметрами. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Покажу паттерны, сгенерированные мной давно и выложенные на dxdy.ru https://dxdy.ru/post1041990.html#p1041990 d=252 0 6 12 30 42 72 90 96 120 126 132 156 162 180 210 222 240 246 252 d=264 0 12 24 30 42 54 84 90 114 132 150 174 180 210 222 234 240 252 264 0 12 24 42 54 72 84 90 114 132 150 174 180 192 210 222 240 252 264 d=300 0 6 24 30 60 66 84 90 144 150 156 210 216 234 240 270 276 294 300 0 6 24 30 60 66 84 126 144 150 156 174 216 234 240 270 276 294 300 0 6 24 30 66 84 90 114 144 150 156 186 210 216 234 270 276 294 300 0 6 24 54 66 84 90 96 120 150 180 204 210 216 234 246 276 294 300 0 6 24 60 66 84 90 126 144 150 156 174 210 216 234 240 276 294 300 0 6 30 60 66 84 90 126 144 150 156 174 210 216 234 240 270 294 300 0 12 42 48 78 90 108 120 132 150 168 180 192 210 222 252 258 288 300 0 18 30 42 48 60 72 102 108 150 192 198 228 240 252 258 270 282 300 0 18 30 42 48 72 102 108 132 150 168 192 198 228 252 258 270 282 300 0 18 30 42 72 90 102 108 132 150 168 192 198 210 228 258 270 282 300 0 30 42 60 72 90 102 108 132 150 168 192 198 210 228 240 258 270 300 d=312 0 6 12 30 42 72 90 102 132 156 180 210 222 240 270 282 300 306 312 0 6 12 30 72 90 96 102 132 156 180 210 216 222 240 282 300 306 312 0 6 12 42 60 72 90 102 132 156 180 210 222 240 252 270 300 306 312 0 6 12 42 72 90 96 102 132 156 180 210 216 222 240 270 300 306 312 0 6 12 42 72 90 102 126 132 156 180 186 210 222 240 270 300 306 312 0 6 12 60 72 90 102 126 132 156 180 186 210 222 240 252 300 306 312 0 6 30 42 60 72 96 126 132 156 180 186 216 240 252 270 282 306 312 0 6 30 60 72 90 96 126 132 156 180 186 216 222 240 252 282 306 312 0 12 30 60 90 96 102 126 132 156 180 186 210 216 222 252 282 300 312 0 30 42 60 66 72 120 126 150 156 162 186 192 240 246 252 270 282 312 d=324 0 12 30 42 54 60 72 84 114 162 210 240 252 264 270 282 294 312 324 0 12 30 42 54 60 72 84 120 162 204 240 252 264 270 282 294 312 324 0 12 30 42 54 60 72 114 120 162 204 210 252 264 270 282 294 312 324 0 12 30 42 54 60 84 114 120 162 204 210 240 264 270 282 294 312 324 0 12 30 42 54 60 84 114 144 162 180 210 240 264 270 282 294 312 324 0 12 30 42 54 60 84 120 144 162 180 204 240 264 270 282 294 312 324 0 12 30 42 54 60 114 120 144 162 180 204 210 264 270 282 294 312 324 0 12 30 42 54 72 84 114 120 162 204 210 240 252 270 282 294 312 324 0 12 30 42 54 84 114 120 144 162 180 204 210 240 270 282 294 312 324 0 12 30 42 60 72 84 114 120 162 204 210 240 252 264 282 294 312 324 0 12 30 42 60 72 84 120 144 162 180 204 240 252 264 282 294 312 324 0 12 30 42 60 84 102 114 144 162 180 210 222 240 264 282 294 312 324 0 12 30 42 60 84 114 120 144 162 180 204 210 240 264 282 294 312 324 0 12 30 54 60 72 84 114 120 162 204 210 240 252 264 270 294 312 324 0 12 30 54 60 72 84 114 144 162 180 210 240 252 264 270 294 312 324 0 12 30 54 60 72 102 114 144 162 180 210 222 252 264 270 294 312 324 0 12 30 54 60 84 114 120 144 162 180 204 210 240 264 270 294 312 324 0 12 30 54 60 102 114 120 144 162 180 204 210 222 264 270 294 312 324 0 12 42 54 60 72 84 114 120 162 204 210 240 252 264 270 282 312 324 0 12 42 54 60 84 114 120 144 162 180 204 210 240 264 270 282 312 324 0 12 42 54 72 84 114 120 144 162 180 204 210 240 252 270 282 312 324 0 24 30 42 72 84 90 120 150 162 174 204 234 240 252 282 294 300 324 0 24 42 72 84 90 120 132 150 162 174 192 204 234 240 252 282 300 324 0 30 42 54 60 72 84 114 120 162 204 210 240 252 264 270 282 294 324 0 30 42 54 60 84 114 120 144 162 180 204 210 240 264 270 282 294 324 0 30 42 72 84 90 120 132 150 162 174 192 204 234 240 252 282 294 324 0 30 42 72 84 114 120 132 150 162 174 192 204 210 240 252 282 294 324 Первый паттерн с минимальным диаметром 252, он всего один. Известно свойство паттернов для 19-ок: все их диаметры кратны 12. При этом не каждый диаметр возможен. Например, есть паттерны с диаметрами 252 и 264, а паттернов с диаметрами 276 и 288 нет. Дальше идут паттерны с диаметрами 300, 312 и 324. Сейчас проверю генерацию показанных паттернов программой gris. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
Генерацию показанных паттернов программой gris выполнила. Полное совпадение с моими результатами! Покажу все выводы программы gris. 0 6 12 30 42 72 90 96 120 126 132 156 162 180 210 222 240 246 252 for tuple diameter=252 number of pretuples=125970 good:1 0 12 24 30 42 54 84 90 114 132 150 174 180 210 222 234 240 252 264 0 12 24 42 54 72 84 90 114 132 150 174 180 192 210 222 240 252 264 for tuple diameter=264 number of pretuples=203490 good:2 for tuple diameter=276 number of pretuples=319770 good:0 for tuple diameter=288 number of pretuples=490314 good:0 0 6 24 30 60 66 84 90 144 150 156 210 216 234 240 270 276 294 300 0 6 24 30 60 66 84 126 144 150 156 174 216 234 240 270 276 294 300 0 6 24 30 66 84 90 114 144 150 156 186 210 216 234 270 276 294 300 0 6 24 54 66 84 90 96 120 150 180 204 210 216 234 246 276 294 300 0 6 24 60 66 84 90 126 144 150 156 174 210 216 234 240 276 294 300 0 6 30 60 66 84 90 126 144 150 156 174 210 216 234 240 270 294 300 0 12 42 48 78 90 108 120 132 150 168 180 192 210 222 252 258 288 300 0 18 30 42 48 60 72 102 108 150 192 198 228 240 252 258 270 282 300 0 18 30 42 48 72 102 108 132 150 168 192 198 228 252 258 270 282 300 0 18 30 42 72 90 102 108 132 150 168 192 198 210 228 258 270 282 300 0 30 42 60 72 90 102 108 132 150 168 192 198 210 228 240 258 270 300 for tuple diameter=300 number of pretuples=735471 good:11 0 6 12 30 42 72 90 102 132 156 180 210 222 240 270 282 300 306 312 0 6 12 30 72 90 96 102 132 156 180 210 216 222 240 282 300 306 312 0 6 12 42 60 72 90 102 132 156 180 210 222 240 252 270 300 306 312 0 6 12 42 72 90 96 102 132 156 180 210 216 222 240 270 300 306 312 0 6 12 42 72 90 102 126 132 156 180 186 210 222 240 270 300 306 312 0 6 12 60 72 90 102 126 132 156 180 186 210 222 240 252 300 306 312 0 6 30 42 60 72 96 126 132 156 180 186 216 240 252 270 282 306 312 0 6 30 60 72 90 96 126 132 156 180 186 216 222 240 252 282 306 312 0 12 30 60 90 96 102 126 132 156 180 186 210 216 222 252 282 300 312 0 30 42 60 66 72 120 126 150 156 162 186 192 240 246 252 270 282 312 for tuple diameter=312 number of pretuples=1081575 good:10 0 12 30 42 54 60 72 84 114 162 210 240 252 264 270 282 294 312 324 0 12 30 42 54 60 72 84 120 162 204 240 252 264 270 282 294 312 324 0 12 30 42 54 60 72 114 120 162 204 210 252 264 270 282 294 312 324 0 12 30 42 54 60 84 114 120 162 204 210 240 264 270 282 294 312 324 0 12 30 42 54 60 84 114 144 162 180 210 240 264 270 282 294 312 324 0 12 30 42 54 60 84 120 144 162 180 204 240 264 270 282 294 312 324 0 12 30 42 54 60 114 120 144 162 180 204 210 264 270 282 294 312 324 0 12 30 42 54 72 84 114 120 162 204 210 240 252 270 282 294 312 324 0 12 30 42 54 84 114 120 144 162 180 204 210 240 270 282 294 312 324 0 12 30 42 60 72 84 114 120 162 204 210 240 252 264 282 294 312 324 0 12 30 42 60 72 84 120 144 162 180 204 240 252 264 282 294 312 324 0 12 30 42 60 84 102 114 144 162 180 210 222 240 264 282 294 312 324 0 12 30 42 60 84 114 120 144 162 180 204 210 240 264 282 294 312 324 0 12 30 54 60 72 84 114 120 162 204 210 240 252 264 270 294 312 324 0 12 30 54 60 72 84 114 144 162 180 210 240 252 264 270 294 312 324 0 12 30 54 60 72 102 114 144 162 180 210 222 252 264 270 294 312 324 0 12 30 54 60 84 114 120 144 162 180 204 210 240 264 270 294 312 324 0 12 30 54 60 102 114 120 144 162 180 204 210 222 264 270 294 312 324 0 12 42 54 60 72 84 114 120 162 204 210 240 252 264 270 282 312 324 0 12 42 54 60 84 114 120 144 162 180 204 210 240 264 270 282 312 324 0 12 42 54 72 84 114 120 144 162 180 204 210 240 252 270 282 312 324 0 24 30 42 72 84 90 120 150 162 174 204 234 240 252 282 294 300 324 0 24 42 72 84 90 120 132 150 162 174 192 204 234 240 252 282 300 324 0 30 42 54 60 72 84 114 120 162 204 210 240 252 264 270 282 294 324 0 30 42 54 60 84 114 120 144 162 180 204 210 240 264 270 282 294 324 0 30 42 72 84 90 120 132 150 162 174 192 204 234 240 252 282 294 324 0 30 42 72 84 114 120 132 150 162 174 192 204 210 240 252 282 294 324 for tuple diameter=324 number of pretuples=1562275 good:27 Замечательно! Смело можно предположить, что программа gris и моя давняя программа (потерянная) работают совершенно одинаково и выдают одинаковые результаты. Сейчас попробую продолжить. Что там будет для паттернов с диаметрами 336, 348, 360, 372 и т. д. Ахиллес выполняет генерацию программой gris очень быстро. Для паттернов с диаметром 468 программа выполнилась за 13 минут. Помню, что моя программа (ещё на старом компьютере!) выполнялась довольно долго. Поэтому я и не стала генерировать паттерны для диаметров больше 324. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
А вот и паттерны с диаметром 336 (начало и конец списка) 0 6 18 36 48 60 66 78 120 168 216 258 270 276 288 300 318 330 336 0 6 18 36 48 60 66 78 126 168 210 258 270 276 288 300 318 330 336 0 6 18 36 48 60 66 90 120 168 216 246 270 276 288 300 318 330 336 0 6 18 36 48 60 66 90 126 168 210 246 270 276 288 300 318 330 336 0 6 18 36 48 60 66 120 126 168 210 216 270 276 288 300 318 330 336 0 6 18 36 48 60 78 120 126 168 210 216 258 276 288 300 318 330 336 0 6 18 36 48 60 90 120 126 168 210 216 246 276 288 300 318 330 336 0 6 18 36 48 66 78 90 120 168 216 246 258 270 288 300 318 330 336 0 6 18 36 48 66 78 90 126 168 210 246 258 270 288 300 318 330 336 0 6 18 36 48 66 78 90 150 168 186 246 258 270 288 300 318 330 336 0 6 18 36 48 66 78 120 126 168 210 216 258 270 288 300 318 330 336 . . . . . . . . . . 0 36 48 60 66 78 90 120 150 168 186 216 246 258 270 276 288 300 336 0 36 48 60 66 78 90 126 150 168 186 210 246 258 270 276 288 300 336 0 36 48 60 66 78 120 126 150 168 186 210 216 258 270 276 288 300 336 0 36 48 60 66 90 120 126 150 168 186 210 216 246 270 276 288 300 336 0 36 48 66 78 90 120 126 150 168 186 210 216 246 258 270 288 300 336 0 36 48 78 90 96 126 138 156 168 180 198 210 240 246 258 288 300 336 0 36 60 66 78 108 120 126 150 168 186 210 216 228 258 270 276 300 336 0 48 60 66 78 90 120 126 150 168 186 210 216 246 258 270 276 288 336 for tuple diameter=336 number of pretuples=2220075 good:116 Сгенерировано 116 теоретических (допустимых) паттернов. Кстати, это количество паттернов могу запросто проверить программой господина Петухова в ручном режиме, записав все 116 паттернов в программу. Сейчас займусь этим. |
Send message Joined: 6 Apr 17 Posts: 14351 Credit: 0 RAC: 0 |
О! А для диаметра 348 сгенерировано всего 34 паттерна, показываю все 0 18 48 54 78 84 120 138 144 174 204 210 228 264 270 294 300 330 348 0 18 48 54 78 84 138 144 168 174 180 204 210 264 270 294 300 330 348 0 18 48 54 78 120 138 144 168 174 180 204 210 228 270 294 300 330 348 0 18 48 60 78 84 90 138 144 174 204 210 258 264 270 288 300 330 348 0 18 48 60 78 84 90 138 168 174 180 210 258 264 270 288 300 330 348 0 18 48 60 78 84 90 144 168 174 180 204 258 264 270 288 300 330 348 0 18 48 60 78 84 138 144 168 174 180 204 210 264 270 288 300 330 348 0 18 48 60 78 90 138 144 168 174 180 204 210 258 270 288 300 330 348 0 18 48 60 84 90 138 144 168 174 180 204 210 258 264 288 300 330 348 0 18 48 78 84 90 138 144 168 174 180 204 210 258 264 270 300 330 348 0 18 54 60 78 84 90 120 138 174 210 228 258 264 270 288 294 330 348 0 18 54 60 78 84 90 138 144 174 204 210 258 264 270 288 294 330 348 0 18 54 60 78 84 120 138 144 174 204 210 228 264 270 288 294 330 348 0 18 54 60 78 90 120 138 144 174 204 210 228 258 270 288 294 330 348 0 18 60 78 84 90 138 144 168 174 180 204 210 258 264 270 288 330 348 0 24 30 48 54 84 90 108 114 174 234 240 258 264 294 300 318 324 348 0 24 30 48 54 84 90 114 168 174 180 234 258 264 294 300 318 324 348 0 24 30 48 54 90 108 114 168 174 180 234 240 258 294 300 318 324 348 0 24 30 48 84 90 108 114 150 174 198 234 240 258 264 300 318 324 348 0 24 30 48 84 90 114 150 168 174 180 198 234 258 264 300 318 324 348 0 24 30 48 84 108 114 150 168 174 180 198 234 240 264 300 318 324 348 0 24 30 48 90 108 114 150 168 174 180 198 234 240 258 300 318 324 348 0 24 30 54 84 90 108 114 150 174 198 234 240 258 264 294 318 324 348 0 24 30 54 84 90 108 114 168 174 180 234 240 258 264 294 318 324 348 0 24 30 54 84 90 108 138 150 174 198 210 240 258 264 294 318 324 348 0 24 30 54 84 90 114 150 168 174 180 198 234 258 264 294 318 324 348 0 24 30 54 90 108 114 150 168 174 180 198 234 240 258 294 318 324 348 0 30 48 54 84 90 108 114 168 174 180 234 240 258 264 294 300 318 348 0 30 48 54 84 108 114 138 150 174 198 210 234 240 264 294 300 318 348 0 30 48 54 84 108 114 138 168 174 180 210 234 240 264 294 300 318 348 0 30 48 84 90 108 114 150 168 174 180 198 234 240 258 264 300 318 348 0 30 54 84 90 108 114 150 168 174 180 198 234 240 258 264 294 318 348 0 30 54 84 108 114 138 150 168 174 180 198 210 234 240 264 294 318 348 0 48 60 78 84 90 138 144 168 174 180 204 210 258 264 270 288 300 348 for tuple diameter=348 number of pretuples=3108105 good:34 А эти паттерны совсем просто проверить :) Но я уже почти не сомневаюсь, что и проверять не нужно, всё правильно программа gris генерирует. |
©2024 (C) Progger