Message boards :
Cafe :
К штурму 19-ки
Message board moderation
Previous · 1 . . . 9 · 10 · 11 · 12 · 13 · 14 · 15 . . . 55 · Next
Author | Message |
---|---|
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Собрала информацию о теоретических паттернах, которые уже сгенерированы вместе с соответствующими формулами для них. Надеюсь, что всё правильно собрала, долго собирала по теме. Первая колонка - диаметр, вторая колонка - количество теоретических паттернов 336 - 116 348 - 33 360 - 226 372 - 260 384 - 190 396 - 655 408 - 421 420 - 4302 432 - 3549 444 - 3401 Сначала я добавляла новые паттерны (до диаметра 384 включительно) в программы поиска вписанных 19-ок. А с диаметра 396 изменила тактику: начала делать программы для поиска центральных 9-ок для каждого заданного диаметра. Но здесь пока не задействованы все теоретические паттерны, потому что формирую программы вручную. Вот так пока сделаны программы для поиска центральных 9-ок: 1) 10 паттернов с диаметром 396; сделано вручную; 2) 10 паттернов с диаметром 408; сделано вручную; 3) 20 паттернов с диаметром 420; сделано вручную; 4) 261 паттерн с диаметром 420, сделано форумчанином автоматически; 5) 62 паттерна с диаметром 432; сделано вручную. 6) 360 паттернов с диаметром 444; сделано вручную. PS. Добавлен диаметр 444. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Черепашка справилась с тестированием программы форумчанина! (06:08) gp > \r d420_9ki_261.txt logfile = "rez_d420_9ki.txt" *** Warning: new stack size = 536870912 (512.000 Mbytes). range of search 500228000001 (p=4852056529329699690 ) 500228100000 (p=4852057499289000000 ) time = 11h, 36min, 47,488 ms. (19:56) gp > Молодец! 11,5 часов проверялся интервал 100000. Центральных 9-ок в этом интервале не найдено. Итак, форумчанин с форума MHP сделал отличную программу на обработку 261 паттерна с диаметром 420. Он мог бы и на все 4302 паттерна сделать, но я ему дала для пробы 261 паттерн. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Ещё черепашка проверяла сегодня 62 паттерна с диаметром 432 (эта программа сформирована мной вручную). (05:47) gp > default(timer,1) (05:48) gp > \r d432_9ki.txt log = 1 (on) [logfile is "rez_d432_9ki.txt"] range of search 500222600001 (p=4852004151003699690 ) 500223000000 (p=4852008030870000000 ) time = 6h, 28min, 2,400 ms. (12:44) gp > \r d432_9ki.txt logfile = "rez_d432_9ki.txt" range of search 500223000001 (p=4852008030879699690 ) 500223300000 (p=4852010940777000000 ) time = 4h, 49min, 244 ms. (17:54) gp > Два прохода сделано за день. Что-то центральные 9-ки перестали встречаться. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Вот центральная 9-ка нашлась на Ахиллесе для паттерна с минимальным диаметром 252 (00:04) gp > \r gris9_2.txt logfile = "res_gris9_2.txt" 32686977659735277648769, 32686977659735277648787, 32686977659735277648793, 32686 977659735277648817, 32686977659735277648823, 32686977659735277648829, 3268697765 9735277648853, 32686977659735277648859, 32686977659735277648877, 32686977659735277648697, 32686977659735277648719, 32686977659735277648769, 32686977659735277648787, 32686977659735277648793, 32686977659735277648817, 32686977659735277648823, 32686977659735277648829, 32686977659735277648853, 32686977659735277648859, 32686977659735277648877, 32686977659735277648929, 32686977659735277648697, 32686977659735277648703, 32686977659735277648709, 32686977659735277648727, 32686977659735277648739, 32686977659735277648769, 32686977659735277648787, 32686977659735277648793, 32686977659735277648817, 32686977659735277648823, 32686977659735277648829, 32686977659735277648853, 32686977659735277648859, 32686977659735277648877, 32686977659735277648907, 32686977659735277648919, 32686977659735277648937, 32686977659735277648943, 32686977659735277648949, 9-ка не продолжается даже до 11-ки ни в какую сторону. 12 вписанных последовательных простых чисел - близко к среднестатистическому на данный момент (13). |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Ахиллес-3 работает над формированием формул для паттернов с диаметром 444. Надеюсь, что справится. Всё ещё трудится :) Но, кажется, уже близко к завершению. Ура! Справился! Показываю окончание вывода из консоли . . . . . . . . 7533959,7577849,7598869,7626337,7636907,7642759,7655717,7670227,7680797,7689037,7699607,7732927,7742167,7796507,7802359,7809079,7827889,7840397,7859207,7865927,7871779,7903097,7926119,7968679,7979249,7998059,8012569,8031379,8041949,8069417,8075269,8090437,8129609,8134327,8138849,8153137,8182739,8197027,8201549,8245439,8293927,8337817,8356627,8363347,8417687,8423539,8432779,8461577,8476669,8480387,8495479,8522947,8533517,8539369,8566837,8577287,8593709,8621177,8636269,8655079,8680159,8683877,8693117,8698969,8737007,8760029,8778839,8803919,8822729,8865289,8871217,8915107,8919629,8963519,8977807,8982329,8987047,9026219,9030937,9035459,9041387,9074707,9085277,9118597,9127837,9147977,9190537,9213559,9234427,9244877,9251597,9257449,9276259,9288767,9314297,9320149,9329389,9358187,9383729,9417049,9427619,9446429,9455087,9460939,9473897,9479749,9490319,9517787,9532879,9538807,9582697,9587219,9631109,9649919,9656639,]; lena=#a; for tuple diameter=444 number of pretuples=30260340 after (%5,7,11) good:3626 time = 20h, 54min, 32,516 ms. Программа работала почти 21 час. Однако паттернов не сильно много. Надо ещё выбросить недопустимые с 0 formulae. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Вот как выводит программа переменые блоки p=[0, 12, 24, 30, 42, 72, 84, 150, 162, 222, 282, 294, 360, 372, 402, 414, 420, 432, 444]; a=[]; lena=#a; p=[0, 12, 24, 30, 42, 72, 84, 150, 180, 222, 264, 294, 360, 372, 402, 414, 420, 432, 444]; a=[]; lena=#a; p=[0, 12, 24, 30, 42, 72, 84, 150, 204, 222, 240, 294, 360, 372, 402, 414, 420, 432, 444]; a=[37747,139849,147857,213307,253919,256537,298579,313589,315409,316207,430277,432097,474937,491767,532379,577039,718427,760469,783877,868759,869149,877157,885979,893987,936827,979259,1002667,1038929,1044709,1045507,1062337,1147609,1155617,1221067,1323169,1331039,1439329,1447727,1464557,1506599,1507397,1509217,1549829,1609499,1614889,1615279,1623287,1682957,1725389,1726187,1768229,1785059,1791637,1893739,1901747,2077169,2079787,2185459,2193857,2238517,2253527,2255347,2295959,2338799,2340619,2355629,2472317,2514359,2516977,2632339,2700407,2802509,2808697,2809087,2825917,2910799,2911189,2919197,2978867,2984647,3084929,3086749,3087547,3202909,3263107,3270977,3373079,3378469,3379267,3446537,3481369,3489767,3531809,3548639,3549437,3554827,3555217,3640099,3656929,3657319,3665327,3708167,3724997,3810269,3833677,3949039,4017107,4101989,4102379,4119209,4125397,4210669,4227499,4235897,4277939,4278737,4280557,4295567,4380839,4386229,4454297,4556399,4572277,4672559,4674379,4742447,4848119,4848509,4850737,4851127,4956799,5024867,5026687,5126969,5142847,5244949,5313017,5318407,5403679,5418689,5420509,5421307,5463349,5471747,5488577,5573849,5580037,5596867,5597257,5682139,5750207,5865569,5888977,5974249,5991079,6033919,6041927,6042317,6059147,6144029,6144419,6149809,6150607,6167437,6209479,6217877,6252709,6319979,6320777,6326167,6428269,6436139,6496337,6611699,6612497,6614317,6714599,6720379,6780049,6788057,6788447,6873329,6890159,6890549,6896737,6998839,7066907,7182269,7184887,7226929,7343617,7358627,7360447,7403287,7443899,7445719,7460729,7505389,7513787,7619459,7622077,7797499,7805507,7907609,7914187,7931017,7973059,7973857,8016289,8075959,8083967,8084357,8089747,8149417,8190029,8191849,8192647,8234689,8251519,8259917,8368207,8376077,8478179,8543629,8551637,8636909,8653739,8654537,8660317,8696579,8719987,8762419,8805259,8813267,8822089,8830097,8830487,8915369,8938777,8980819,9122207,9166867,9207479,9224309,9267149,9268969,9383039,9383837,9385657,9400667,9442709,9445327,9485939,9551389,9559397,9661499,]; lena=#a; p=[0, 12, 24, 30, 42, 72, 84, 150, 210, 222, 234, 294, 360, 372, 402, 414, 420, 432, 444]; a=[139849,253919,315409,316207,430277,491767,577039,868759,877157,885979,1038929,1062337,1147609,1323169,1439329,1447727,1509217,1609499,1614889,1623287,1785059,1893739,2079787,2185459,2193857,2255347,2340619,2355629,2516977,2632339,2802509,2808697,2825917,2911189,2978867,3086749,3087547,3202909,3263107,3373079,3378469,3379267,3548639,3549437,3554827,3640099,3657319,3724997,3810269,3833677,3949039,4101989,4119209,4125397,4210669,4280557,4295567,4380839,4386229,4556399,4572277,4672559,4742447,4848119,4851127,4956799,5026687,5126969,5142847,5313017,5318407,5403679,5418689,5488577,5573849,5580037,5597257,5750207,5865569,5888977,5974249,6041927,6059147,6144419,6149809,6150607,6319979,6320777,6326167,6436139,6496337,6611699,6612497,6720379,6788057,6873329,6890549,6896737,7066907,7182269,7343617,7358627,7443899,7505389,7513787,7619459,7805507,7914187,8075959,8084357,8089747,8190029,8251519,8259917,8376077,8551637,8636909,8660317,8813267,8822089,8830487,9122207,9207479,9268969,9383039,9383837,9445327,9559397,]; lena=#a; . . . . . . . Всё замечательно, кроме лишней запятой в конце вектора а. Не смогла её "убить", компоненты вектора а выводятся в цикле, и после каждой компоненты ставится запятая. Может, как-то можно это сделать, но я не придумала. Ну, эту лишнюю запятую можно быстро удалить в Ворде. Первые два блока в самом начале - это недопустимые паттерны, которые раньше выводились с 0 formulae. Сейчас я их посчитаю. Готово! Недопустимых паттернов оказалось 225. Следовательно теоретических паттернов с диаметром 444 3401 шт. Как видим, пока особого увеличения количества теоретических паттернов не наблюдается. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Итак, остаётся открытым вопрос: как в полученный выходной файл вставить постоянный блок? gris предлагает тупо печатать постоянный блок прямо в программе формирования паттернов и соответствующих им формул, вот так print("for(i=i1,i2,"); print(" "); print("bp=i*period; "); print("for( n=1,",kf,", bpt=bp+a[n];"); print(" if( ispseudoprime (bpt) &&"); for( i=6,14, print(" ispseudoprime (bpt+ ",pt[i],") &&", ) ); for( i=6,12, print(" nextprime(bpt+ ",pt[i]+1,") == (bpt+ ", pt[i+1],") &&" ) ); print(" nextprime(bpt+ ",pt[13]+1,") == (bpt+ ",pt[14],")" ) ; print(" , print(bpt+",pt[6],");"); print(" );"); print(" );"); print(");"); Мне такой способ что-то не нравится. Этот фрагмент программа будет шлёпать примерно 4000 раз, а для некоторых диаметров и больше. Я хотела бы найти другой способ. Текстовый файл с переменными блоками мной получен. Теперь надо в этот текстовый файл просто вставить постоянный блок после каждого переменного блока. Ну вот банально - взять и вставить. Неужели нет никакого инструмента для этого?? Кстати, задала этот вопрос Demis тут https://boinc.progger.info/odlk/forum_thread.php?id=232&postid=11097 Ответ пока не получен. А у Demis большой опыт написания подобных утилит. Он и мне писал некоторые утилиты, которыми до сих пор пользуюсь. PS. Напомню: инструмент такой, конечно, есть, форумчанин с форума MHP его применил. Но он это сделал в Матлабе, у меня нет Матлаба. А как-то проще нельзя? Чтобы у меня утилита работала. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Господа! Выложила текстовый файл на Яндекс.Диск, он в том же архиве, где раньше было аналогичное задание https://disk.yandex.ru/d/hYTnOUiwe8Bkng Текстовый файл в архиве имеет имя pat19_d444.txt Описание задания 1) удалить переменные блоки, в которых вектор a пустой, например: p=[0, 12, 24, 30, 42, 72, 84, 150, 162, 222, 282, 294, 360, 372, 402, 414, 420, 432, 444]; a=[]; lena=#a; 2) После каждого оставшегося переменного блока вставить постоянный блок, вот такой for( i=i1,i2, bp=i*period; for( n=1,lena, bpt=bp+a[n]; if( ispseudoprime (bpt) && ispseudoprime (bpt+p[6]) && ispseudoprime (bpt+p[7] ) && ispseudoprime (bpt+p[8]) && ispseudoprime (bpt+p[9]) && ispseudoprime (bpt+p[10]) && ispseudoprime (bpt+p[11]) && ispseudoprime (bpt+p[12]) && ispseudoprime (bpt+p[13]) && ispseudoprime (bpt+p[14]) && nextprime((bpt+p[6])+1) == (bpt+p[7]) && nextprime((bpt+p[7])+1) == (bpt+p[8]) && nextprime((bpt+p[8])+1) == (bpt+p[9]) && nextprime((bpt+p[9])+1) == (bpt+p[10]) && nextprime((bpt+p[10])+1) == (bpt+p[11]) && nextprime((bpt+p[11])+1) == (bpt+p[12]) && nextprime((bpt+p[12])+1) == (bpt+p[13]) && nextprime((bpt+p[13])+1) == (bpt+p[14]) , print1(bpt+p[6],", ");print1(bpt+p[7],", ");print1(bpt+p[8],", ");print1(bpt+p[9],", ");print1(bpt+p[10],", ");print1(bpt+p[11],", ");print1(bpt+p[12],", "); print1(bpt+p[13],", ");print1(bpt+p[14],", ");print(); forprime(k=bpt, bpt+p[19], print(k,", "););print(); print1(bpt,", ");print1(bpt+p[2],", ");print1(bpt+p[3],", ");print1(bpt+p[4],", ");print1(bpt+p[5],", ");print1(bpt+p[6],", ");print1(bpt+p[7],", "); print1(bpt+p[8],", ");print1(bpt+p[9],", ");print1(bpt+p[10],", ");print1(bpt+p[11],", ");print1(bpt+p[12],", ");print1(bpt+p[13],", ");print1(bpt+p[14],", "); print1(bpt+p[15],", ");print1(bpt+p[16],", ");print1(bpt+p[17],", ");print1(bpt+p[18],", ");print1(bpt+p[19],", ");print(); ); ); ); Переменный блок состоит из: вектор р, вектор а и строка lena=#a; Для описанных действий надо написать утилиту, которой я смогу пользоваться в дальнейшем для подобной процедуры формирования текста программы. У меня нет никаких матпакетов. Я работаю в ОС Windows-7 64-bit. PS. В данном файле pat19_d444.txt имеется 225 переменных блоков с пустым вектором а. И 3401 правильных переменных блоков. Таким образом, постоянный блок должен быть вставлен 3401 раз - после каждого правильного переменного блока. Вопросы есть? Можно задать их здесь тем, для кого форум доступен. Или можно задать их в почте natalimak1@yandex.ru |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Похоже, задачу я задала слишком сложную :) Никто даже и не попытался её решить. Надо ли думать, что нужную мне утилиту написать невозможно? Неужели машины такие тупые, что не могут программно выполнить тривиальную процедуру, которую человек (в моём лице) выполняет самым банальным способом вручную??? Я хотела спросить об этом у GhatGPT, но ему надо заплатить. Нет, мне не жалко 109 рублей, но я не могу заплатить по той причине, что не имею денег в Интернете. Нет у меня никаких девайсов, никаких карт, никаких смартфонов и айфонов. Просила gris спросить, а он ответил: "Зачем я буду спрашивать ответ, который сам знаю?". Ну, вот он знает, как эту процедуру выполнить. Выше я уже писала, что он предлагает тупо вставлять постоянный блок в его программе формирования формул путём печати в файл этого блока. Мне этот метод совсем не нравится. Программа формирования паттернов и соответствующих им формул и так выполняется очень долго. Нагружать эту программу печатью нескольких тысяч постоянных блоков считаю нерациональным. Ладно, придётся вставлять вручную, если машины это сделать не могут. Точнее, они наверняка могут, но никто не может или не хочет написать соответствующую утилиту, которой я могу пользоваться. Тогда самая лучшая утилита - ручки :) |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,964,801 RAC: 77 |
Так, наверное, впрочем не понятно... \l d432_formulae_new-2.txt; allocatemem(2^29); left(str,n)={v ="";tmp = Vec(str);ln=length(tmp);if(n > ln,n=ln);for(x=1,n,v=concat(v,tmp[x]););return(v)} { p=vector(19); p[1]=0; pl=19; \\vector for pattern pl - lenght diam=432; k=0; kw=0; n=diam\12; m=n-8; d2=diam\2; N=2*3*5*7*11*13*17*19; \\primorial lind=N+diam; \\ length of index array; forming of it vind=vector(lind,i,(i%2!=0) * (i%3!=0) * (i%5!=0) * (i%7!=0) * (i%11!=0) * (i%13!=0)* (i%17!=0)* (i%19!=0)); \\ generate prepatterns 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; \\ we have new prepattern; test it for good wt=1; forprime( w=5,13, 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, kw++; \\ we have the good pattern! print(p); print (""); nf = fileopen("./pattern-" kw ".gp","a"); filewrite(nf,"\\l d432_formulae_new-pat-" kw ".txt;"); filewrite(nf,"allocatemem(2^29);"); filewrite(nf,"{period = 9699690; pl=19; dm=420; N=period; \\\\N=#19"); filewrite(nf,"print(\"range of search\");"); filewrite(nf,"i1=500228000001; print(i1,\" (p=\", i1*9699690,\" )\");"); filewrite(nf,"i2=500228100000; print(i2,\" (p=\", i2*9699690,\" )\");"); filewrite(nf,""); filewrite1(nf,"p="); filewrite1(nf,p); filewrite1(nf,";\n"); kf=0; jj=""; print1("["); for( j=1,N, ind=1; for( i=1,pl, if( vind[j+p[i]]==0, ind=0; break ) ); if( ind==1,kf++; \\ we have formula \\for( i=1,pl, print1(j+p[i]," ") ); print(" ") print1(j, ","); jj=concat(jj,concat(j,",")); ); ); print(kf, " formulae"); print(); filewrite1(nf,"a=["); filewrite1(nf, left(jj,length(jj)-1)); filewrite1(nf,"];\n"); filewrite(nf,"lena=#a;"); if(kf == 0,filewrite(nf,"\\\\ZERO-ARRAY-A;"); filewrite(nf,"print(\"ZERO-ARRAY-A is found. Not calculate. Exit.\")");, filewrite(nf,""); filewrite(nf,"for\( i=i1,i2,"); filewrite(nf," bp=i*period;"); filewrite(nf," for\( n=1,lena, bpt=bp+a[n];"); filewrite(nf," if\( ispseudoprime \(bpt\) \&\&"); filewrite(nf," ispseudoprime (bpt+p[6]) &&"); filewrite(nf," ispseudoprime (bpt+p[7] ) &&"); filewrite(nf," ispseudoprime (bpt+p[8]) &&"); filewrite(nf," ispseudoprime (bpt+p[9]) &&"); filewrite(nf," ispseudoprime (bpt+p[10]) &&"); filewrite(nf," ispseudoprime (bpt+p[11]) &&"); filewrite(nf," ispseudoprime (bpt+p[12]) &&"); filewrite(nf," ispseudoprime (bpt+p[13]) &&"); filewrite(nf," ispseudoprime (bpt+p[14]) &&"); filewrite(nf," nextprime((bpt+p[6])+1) == (bpt+p[7]) &&"); filewrite(nf," nextprime((bpt+p[7])+1) == (bpt+p[8]) &&"); filewrite(nf," nextprime((bpt+p[8])+1) == (bpt+p[9]) &&"); filewrite(nf," nextprime((bpt+p[9])+1) == (bpt+p[10]) &&"); filewrite(nf," nextprime((bpt+p[10])+1) == (bpt+p[11]) &&"); filewrite(nf," nextprime((bpt+p[11])+1) == (bpt+p[12]) &&"); filewrite(nf," nextprime((bpt+p[12])+1) == (bpt+p[13]) &&"); filewrite(nf," nextprime((bpt+p[13])+1) == (bpt+p[14]),"); filewrite(nf," print1(bpt+p[6],\", \"); print1(bpt+p[7],\", \"); print1(bpt+p[8],\", \"); print1(bpt+p[9],\", \");print1(bpt+p[10],\", \");print1(bpt+p[11],\", \");print1(bpt+p[12],\", \"); "); filewrite(nf," print1(bpt+p[13],\", \"); print1(bpt+p[14],\", \");print();"); filewrite(nf," for prime(k=bpt, bpt+p[19], print(k,\", \");); print();"); filewrite(nf," print1(bpt,\", \"); print1(bpt+p[2],\", \"); print1(bpt+p[3],\", \"); print1(bpt+p[4],\", \");print1(bpt+p[5],\", \");print1(bpt+p[6],\", \");print1(bpt+p[7],\", \");"); filewrite(nf," print1(bpt+p[8],\", \"); print1(bpt+p[9],\", \"); print1(bpt+p[10],\", \");print1(bpt+p[11],\", \");print1(bpt+p[12],\", \");print1(bpt+p[13],\", \");print1(bpt+p[14],\", \");"); filewrite(nf," print1(bpt+p[15],\", \"); print1(bpt+p[16],\", \");print1(bpt+p[17],\", \");print1(bpt+p[18],\", \");print1(bpt+p[19],\", \");print();"); filewrite(nf," );"); filewrite(nf," );"); filewrite(nf,");"); ); filewrite(nf,"}"); \\filewrite(nf,"\\q"); \\ uncomment if need autoclose secondary prg, when it started filewrite(nf,""); fileclose(nf); ); \\if(kw>10,break(9)); ) ))) ))) ))); print("for tuple diameter=",diam," number of pretuples=",k, " after (%5,7,11) good:", kw) } |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Так, наверное, впрочем не понятно... Demis что вам не понятно? Вы тоже предлагаете вставлять постоянный блок из программы формирования паттернов и формул? (как gris) А если мы уже имеем файл pat19_d444.txt (который я положила в архив вчера), этот файл уже содержит все переменны блоки и в него надо вставить постоянные блоки. Правда, желательно ещё удалить блоки, в которых вектор a пустой. Но по большому счёту эти блоки можно и не удалять, они не будут мешать работе программы, просто будут место занимать в файле. Однако после этих переменных блоков не надо вставлять постоянный блок! Лучше, конечно, эти блоки удалить. PS. Впрочем, не уверена, не будет ли такая запись a=[]; давать ошибку. Можно проверить. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Demis выполнила вашу программу (которая в предыдущем посте) для диаметра 264 (для этого диаметра всего два паттерна). Программа сначала поругалась, но потом вывела два паттерна с соответствующими формулами и на этом закончила. Показываю логи из выходного файла [logfile is "res_d264_9ki_Demis.txt"] *** Warning: new stack size = 536870912 (512.000 Mbytes). %2 = (str,n)->v="";tmp=Vec(str);ln=length(tmp);if(n>ln,n=ln);for(x=1,n,v=concat(v,tmp[x]););return(v) [0, 12, 24, 30, 42, 54, 84, 90, 114, 132, 150, 174, 180, 210, 222, 234, 240, 252, 264] [19739,30827,103757,179339,234317,290009,307247,322339,373169,446099,473269,501077,528247,576659,601177,643439,649589,660677,676759,716369,771347,781577,846929,870589,919859,943519,954607,985067,1003019,1030189,1103119,1113689,1140859,1158097,1168327,1213789,1273289,1278997,1296949,1338497,1411427,1438597,1500439,1567219,1632427,1705357,1770709,1780939,1821539,1835917,1894469,1908847,1959677,2119277,2229947,2247899,2262277,2313107,2386037,2413207,2451389,2461619,2516597,2572289,2583377,2589527,2616697,2656307,2731889,2745319,2755549,2786867,2810527,2859797,2883457,2925719,2942957,2959039,2970127,2998649,3025819,3043057,3053627,3080797,3129209,3153727,3202139,3213227,3229309,3236887,3312469,3385399,3423139,3440377,3496069,3507157,3555569,3582739,3655669,3706499,3710647,3720877,3761477,3834407,3849499,3909989,4052989,4103819,4176749,4187837,4203919,4263419,4336349,4374089,4391327,4401557,4447019,4512227,4530179,4557349,4630279,4671827,4685257,4695487,4733669,4760839,4800449,4833769,4865657,4898977,4938587,4965757,5003939,5014169,5027599,5069147,5142077,5169247,5187199,5252407,5297869,5308099,5325337,5363077,5436007,5495507,5511589,5522677,5595607,5646437,5789437,5849927,5865019,5937949,5978549,5988779,5992927,6043757,6116687,6143857,6192269,6203357,6259049,6276287,6314027,6386957,6462539,6470117,6486199,6497287,6545699,6570217,6618629,6645799,6656369,6673607,6700777,6729299,6740387,6756469,6773707,6815969,6839629,6888899,6912559,6943877,6954107,6967537,7043119,7082729,7109899,7116049,7127137,7182829,7237807,7248037,7286219,7313389,7386319,7437149,7451527,7469479,7580149,7739749,7790579,7804957,7863509,7877887,7918487,7928717,7994069,8066999,8132207,8198987,8260829,8287999,8360929,8402477,8420429,8426137,8485637,8531099,8541329,8558567,8585737,8596307,8669237,8696407,8714359,8744819,8755907,8779567,8828837,8852497,8917849,8928079,8983057,9022667,9038749,9049837,9055987,9098249,9122767,9171179,9198349,9226157,9253327,9326257,9377087,9392179,9409417,9465109,9520087,9595669,9668599,9679687,256 formulae [0, 12, 24, 42, 54, 72, 84, 90, 114, 132, 150, 174, 180, 192, 210, 222, 240, 252, 264] [1889,10937,72817,99949,113039,129797,156967,165157,178247,313057,331999,340189,353279,380449,397207,415159,499309,508357,583327,591517,610459,675667,823567,837647,850699,925669,939749,1102027,1116107,1179989,1264007,1291139,1348157,1356347,1366109,1431317,1450259,1458449,1542467,1606349,1626617,1633519,1690499,1761427,1774517,1782707,1801649,1809877,1863529,1866857,1876619,1884809,1911979,1928737,1941827,1968959,2039887,2052977,2103769,2116859,2144029,2152219,2271937,2280127,2293217,2320387,2355097,2374039,2382229,2395319,2422489,2439247,2550397,2614279,2662729,2790637,2865607,2879687,2892739,3054719,3103169,3119927,3222029,3231077,3306047,3333179,3390197,3398387,3546287,3565229,3573419,3573457,3600589,3613679,3630437,3648389,3675559,3732539,3741587,3803467,3816557,3824747,3843689,3851917,3908897,3915799,4026949,4043707,4056797,4083929,4083967,4092157,4111099,4145809,4158899,4186069,4194259,4313977,4322167,4335257,4362427,4426309,4537459,4554217,4602667,4656319,4704769,4832677,4866749,4994657,5043107,5096759,5145209,5161967,5273117,5336999,5364169,5377259,5385449,5505167,5513357,5540527,5553617,5588327,5607269,5615459,5615497,5642629,5655719,5672477,5783627,5790529,5847509,5855737,5874679,5882869,5895959,5957839,5966887,6023867,6051037,6068989,6085747,6098837,6125969,6126007,6134197,6153139,6301039,6309229,6366247,6393379,6468349,6477397,6579499,6596257,6644707,6806687,6819739,6833819,6908789,7036697,7085147,7149029,7260179,7276937,7304107,7317197,7325387,7344329,7379039,7406209,7419299,7427489,7547207,7555397,7582567,7595657,7646449,7659539,7730467,7757599,7770689,7787447,7814617,7822807,7832569,7835897,7889549,7897777,7916719,7924909,7937999,8008927,8065907,8072809,8093077,8156959,8240977,8249167,8268109,8333317,8343079,8351269,8408287,8435419,8519437,8583319,8597399,8759677,8773757,8848727,8861779,8875859,9023759,9088967,9107909,9116099,9191069,9200117,9284267,9302219,9318977,9346147,9359237,9367427,9386369,9521179,9534269,9542459,9569629,9586387,9599477,9626609,9688489,9697537,256 formulae for tuple diameter=264 number of pretuples=203490 after (%5,7,11) good:2 time = 38,970 ms. Постоянные блоки программа не вставила. К тому же, программа не преобразовала переменные блоки, то есть не вывела их в нужном формате p=[...]; a=[...]; lena=#a; |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Вот так выводит данные в выходной файл моя версия программы gris для диаметра 264 [logfile is "d264_formulae_new.txt"] *** Warning: new stack size = 536870912 (512.000 Mbytes). p=[0, 12, 24, 30, 42, 54, 84, 90, 114, 132, 150, 174, 180, 210, 222, 234, 240, 252, 264]; a=[19739,30827,103757,179339,234317,290009,307247,322339,373169,446099,473269,501077,528247,576659,601177,643439,649589,660677,676759,716369,771347,781577,846929,870589,919859,943519,954607,985067,1003019,1030189,1103119,1113689,1140859,1158097,1168327,1213789,1273289,1278997,1296949,1338497,1411427,1438597,1500439,1567219,1632427,1705357,1770709,1780939,1821539,1835917,1894469,1908847,1959677,2119277,2229947,2247899,2262277,2313107,2386037,2413207,2451389,2461619,2516597,2572289,2583377,2589527,2616697,2656307,2731889,2745319,2755549,2786867,2810527,2859797,2883457,2925719,2942957,2959039,2970127,2998649,3025819,3043057,3053627,3080797,3129209,3153727,3202139,3213227,3229309,3236887,3312469,3385399,3423139,3440377,3496069,3507157,3555569,3582739,3655669,3706499,3710647,3720877,3761477,3834407,3849499,3909989,4052989,4103819,4176749,4187837,4203919,4263419,4336349,4374089,4391327,4401557,4447019,4512227,4530179,4557349,4630279,4671827,4685257,4695487,4733669,4760839,4800449,4833769,4865657,4898977,4938587,4965757,5003939,5014169,5027599,5069147,5142077,5169247,5187199,5252407,5297869,5308099,5325337,5363077,5436007,5495507,5511589,5522677,5595607,5646437,5789437,5849927,5865019,5937949,5978549,5988779,5992927,6043757,6116687,6143857,6192269,6203357,6259049,6276287,6314027,6386957,6462539,6470117,6486199,6497287,6545699,6570217,6618629,6645799,6656369,6673607,6700777,6729299,6740387,6756469,6773707,6815969,6839629,6888899,6912559,6943877,6954107,6967537,7043119,7082729,7109899,7116049,7127137,7182829,7237807,7248037,7286219,7313389,7386319,7437149,7451527,7469479,7580149,7739749,7790579,7804957,7863509,7877887,7918487,7928717,7994069,8066999,8132207,8198987,8260829,8287999,8360929,8402477,8420429,8426137,8485637,8531099,8541329,8558567,8585737,8596307,8669237,8696407,8714359,8744819,8755907,8779567,8828837,8852497,8917849,8928079,8983057,9022667,9038749,9049837,9055987,9098249,9122767,9171179,9198349,9226157,9253327,9326257,9377087,9392179,9409417,9465109,9520087,9595669,9668599,9679687,]; lena=#a; p=[0, 12, 24, 42, 54, 72, 84, 90, 114, 132, 150, 174, 180, 192, 210, 222, 240, 252, 264]; a=[1889,10937,72817,99949,113039,129797,156967,165157,178247,313057,331999,340189,353279,380449,397207,415159,499309,508357,583327,591517,610459,675667,823567,837647,850699,925669,939749,1102027,1116107,1179989,1264007,1291139,1348157,1356347,1366109,1431317,1450259,1458449,1542467,1606349,1626617,1633519,1690499,1761427,1774517,1782707,1801649,1809877,1863529,1866857,1876619,1884809,1911979,1928737,1941827,1968959,2039887,2052977,2103769,2116859,2144029,2152219,2271937,2280127,2293217,2320387,2355097,2374039,2382229,2395319,2422489,2439247,2550397,2614279,2662729,2790637,2865607,2879687,2892739,3054719,3103169,3119927,3222029,3231077,3306047,3333179,3390197,3398387,3546287,3565229,3573419,3573457,3600589,3613679,3630437,3648389,3675559,3732539,3741587,3803467,3816557,3824747,3843689,3851917,3908897,3915799,4026949,4043707,4056797,4083929,4083967,4092157,4111099,4145809,4158899,4186069,4194259,4313977,4322167,4335257,4362427,4426309,4537459,4554217,4602667,4656319,4704769,4832677,4866749,4994657,5043107,5096759,5145209,5161967,5273117,5336999,5364169,5377259,5385449,5505167,5513357,5540527,5553617,5588327,5607269,5615459,5615497,5642629,5655719,5672477,5783627,5790529,5847509,5855737,5874679,5882869,5895959,5957839,5966887,6023867,6051037,6068989,6085747,6098837,6125969,6126007,6134197,6153139,6301039,6309229,6366247,6393379,6468349,6477397,6579499,6596257,6644707,6806687,6819739,6833819,6908789,7036697,7085147,7149029,7260179,7276937,7304107,7317197,7325387,7344329,7379039,7406209,7419299,7427489,7547207,7555397,7582567,7595657,7646449,7659539,7730467,7757599,7770689,7787447,7814617,7822807,7832569,7835897,7889549,7897777,7916719,7924909,7937999,8008927,8065907,8072809,8093077,8156959,8240977,8249167,8268109,8333317,8343079,8351269,8408287,8435419,8519437,8583319,8597399,8759677,8773757,8848727,8861779,8875859,9023759,9088967,9107909,9116099,9191069,9200117,9284267,9302219,9318977,9346147,9359237,9367427,9386369,9521179,9534269,9542459,9569629,9586387,9599477,9626609,9688489,9697537,]; lena=#a; for tuple diameter=264 number of pretuples=203490 after (%5,7,11) good:2 У меня переменные блоки выводятся в нужном формате. Правда, есть одна ошибка: в конце вектора а лишняя запятая, которую мне не удалось "убить". Ну, это ерунда, моментально исправляется в Ворде. Постоянные блоки у меня не вставляются. Аналогичный выходной файл вы видите в архиве для диаметра 444 (pat19_d444.txt). Кстати, в этом файле я уже удалила лишнюю запятую в векторах а. PS. Показываю мою версию программы gris для диаметра 264, которая сформировала показанный выше выходной файл \l d264_formulae_new.txt; allocatemem(2^29); { p=vector(19); p[1]=0; pl=19; \\vector for pattern pl - lenght diam=264; k=0; kw=0; n=diam\12; m=n-8; d2=diam\2; N=2*3*5*7*11*13*17*19; \\primorial lind=N+diam; \\ length of index array; forming of it vind=vector(lind,i,(i%2!=0) * (i%3!=0) * (i%5!=0) * (i%7!=0) * (i%11!=0) * (i%13!=0)* (i%17!=0)* (i%19!=0)); \\ generate prepatterns 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; \\ we have new prepattern; test it for good wt=1; forprime( w=5,13, 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, kw++; \\ we have the good pattern! print("p=",p,";"); kf=0; print1("a=["); for( j=1,N, ind=1; for( i=1,pl, if( vind[j+p[i]]==0, ind=0; break ) ); if( ind==1,kf++; \\ we have formula \\for( i=1,pl, print1(j+p[i]," ") ); print(" ") print1(j, ",") ); ); print("];"); print("lena=#a;"); print() ); \\if(kw>10,break(9)); ) ))) ))) ))); print("for tuple diameter=",diam," number of pretuples=",k, " after (%5,7,11) good:", kw) } |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Вставила вручную в файл pat19_d444.txt постоянные блоки для 360 первых правильных переменных блоков (не с пустым вектором а). Остальные переменные блоки, разумеется отрезала. Блоки с пустым вектором а удалила. Сейчас попробую запустить полученную программу для обработки 360 паттернов с диаметром 444 на Ахиллесе-3. Интервал задала маленький - 100000. Кстати, проблему копирования удаётся решить, подключаясь предыдущей программой AnyDesk. С этой программой всё копируется и на удалённый компьютер, и с него на мой компьютер. Итак, Ахиллес-3 начинает тестирование программы обработки 360 паттернов с диаметром 444 - поиск центральных 9-ок ? \r d444_9ki_360.txt log = 1 (on) [logfile is "rez_d444_9ki.txt"] *** Warning: new stack size = 536870912 (512.000 Mbytes). range of search 500224000001 (p=4852017730569699690 ) 500224100000 (p=4852018700529000000 ) Ошибок на старте не выдано, уже хорошо. Ждём-с... PS. Могу положить сформированную вручную программу на 360 паттернов в архив в качестве образца. Точно такую же программу требуется получить автоматически из файла pat19_d444.txt. Только не на 360 паттернов, а на все 3401 паттернов. Понятно, что вручную я это сделать не смогла. Ну, если дней 10 вставлять постоянные блоки порциями, можно и вставить. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Новая центральная 9-ка найдена для паттерна с диаметром 396 logfile = "rez_d396_9ki.txt" range of search 500242000001 (p=4852192324989699690 ) 500262000000 (p=4852386318780000000 ) 4852321600235162873, 4852321600235162909, 4852321600235162951, 4852321600235162993, 4852321600235163011, 4852321600235163029, 4852321600235163071, 4852321600235163113, 4852321600235163149, 4852321600235162813, 4852321600235162827, 4852321600235162873, 4852321600235162909, 4852321600235162951, 4852321600235162993, 4852321600235163011, 4852321600235163029, 4852321600235163071, 4852321600235163113, 4852321600235163149, 4852321600235163157, 4852321600235163163, 4852321600235163169, 4852321600235162813, 4852321600235162819, 4852321600235162831, 4852321600235162843, 4852321600235162861, 4852321600235162873, 4852321600235162909, 4852321600235162951, 4852321600235162993, 4852321600235163011, 4852321600235163029, 4852321600235163071, 4852321600235163113, 4852321600235163149, 4852321600235163161, 4852321600235163179, 4852321600235163191, 4852321600235163203, 4852321600235163209, Эта 9-ка не продолжается даже до 11-ки ни в какую сторону. 14 вписанных последовательных простых чисел. Кстати, заметила: больше всего центральных 9-ок находится для паттернов с диаметром 396. А у меня программа для этого диаметра была сформирована вручную и содержит всего 10 паттернов для обработки. Надо срочно изменить эту программу. Для этого диаметра имеем 655 теоретических паттернов. Надо задействовать их все! Вручную сложновато, но утилиты пока нет. |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,964,801 RAC: 77 |
Мой код создает, генерирует, новые гепешки (файлы с расширением pattern-1.gp, где "1" это последовательный номер паттерна) для последующего запуска (которые нужно запускать отдельно). Если нужно менять диаметр, то не забываем менять значение diam=432 на нужное. Немного не учел изменение изменение имени файла лога. Для этого нужно поменять строку: filewrite(nf,"\\l d432_formulae_new-pat-" kw ".txt;");на строку: filewrite(nf,"\\l d" diam "_formulae_new-pat-" kw ".txt;"); Не совсем понимаю нужно-ли менять значение "dm=420" в переменной для генерируемого файла. имею ввиду строку: filewrite(nf,"{period = 9699690; pl=19; dm=420; N=period; \\\\N=#19");на значение diam. Мой код НЕ изменяет вывод на экран консоли, т.е. оный оставлен оригинальным. Мой код НЕ изменяет вывод в другие файлы, т.е. оный оставлен оригинальным. Весь вывод идет "вовнутрь" создаваемых файлов pattern-1.gp. р и а в созданных гепешках имеют правильные значения не требующих корректировок. Т.е. преобразованные блоки находятся сразу в гепешке. Т.е. гепешка сразу готова к выполнению. Там где при генерации а=[] пустое, автоматически вставляется только заглушка и код расчета НЕ добавляется. Одна новая, сгенерированная, гепешка может быть запущена таким батником: @echo off SetLocal EnableExtensions EnableDelayedExpansion set mydir=%~dp0 rem start "Start:" /d "%mydir%" "C:\Program Files (x86)\Pari64-2-13-4\gp.exe" "%mydir%\pattern-1.gp" "C:\Program Files (x86)\Pari64-2-13-4\gp.exe" "-q" "%mydir%\pattern-1.gp"(Важно перепроверить Ваш путь к файлу gp.exe, это у меня он такой C:\Program Files (x86)\Pari64-2-13-4\) |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Demis извините, ничего не поняла. Вы пошли своим путём, уже третьим :) Первый путь - gris, второй путь - мой. Вряд ли я разберусь с вашим путём. gris намедни написал в письме: "Я совсем запутался". Понятно. Просто он плохо следил за тем путём, которым иду я. Эти два пути пересекаются, но не совпадают. Короче, вы выполнили не то задание, которое дано мной. Спасибо за работу, но, увы, она для меня бесполезна. Мой код создает, генерирует, новые гепешки (файлы с расширением pattern-1.gp, где "1" это последовательный номер паттерна) для последующего запуска (которые нужно запускать отдельно). Абсолютно не понимаю! Если у меня 3401 паттерн, то я должна 3401 раз запустить паттерны - каждый отдельно? Впрочем, отвечать не надо. Всё равно я в вашем пути не буду разбираться. Я из выходного файла программы gris делаю программу на обработку всех паттернов сразу. Но у меня получается полуфабрикат - текст программы содержит только переменные блоки. Остаётся вставить к каждому переменному блоку постоянный блок, и программа готова. |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Ахиллес-3 выполнил программу gris формирования паттернов и формул для диаметра 396, в моей версии. Показываю окончание выходного файла . . . . . . . . p=[0, 66, 78, 108, 120, 150, 156, 168, 186, 198, 210, 228, 240, 246, 276, 288, 318, 330, 396]; a=[68161,112051,116573,181483,208951,225373,238331,271651,282221,315541,379121,384973,410503,441821,485711,508733,580673,613993,673051,712223,735751,779641,784163,876541,939241,1000301,1006153,1063001,1078093,1159901,1176323,1203791,1237693,1266491,1281583,1361453,1405343,1453831,1497721,1502243,1560421,1564943,1608833,1624001,1657321,1667891,1701211,1730591,1796173,1827491,1858873,1871381,1902763,1966343,1999663,2029043,2056511,2062363,2072933,2121421,2165311,2169833,2232533,2324911,2350441,2448671,2463763,2520611,2526463,2553931,2623363,2652161,2667253,2724101,2729953,2747123,2791013,2853713,2946091,2950613,2994503,3018031,3116261,3177631,3221521,3244543,3288433,3301391,3345281,3414713,3442181,3448033,3458603,3504881,3519973,3548771,3618203,3643733,3736111,3798811,3842701,3847223,3906281,3912133,3939601,3968981,4002301,4012871,4109771,4115623,4141153,4172471,4239383,4300753,4311323,4344643,4403701,4466401,4470923,4514813,4563301,4607191,4669891,4687061,4730951,4764853,4793651,4808743,4890551,4905643,4934441,4968343,5012233,5029403,5092103,5135993,5184481,5228371,5232893,5295593,5354651,5387971,5398541,5459911,5526823,5558141,5583671,5589523,5686423,5696993,5730313,5759693,5787161,5793013,5852071,5856593,5900483,5963183,6055561,6081091,6150523,6179321,6194413,6240691,6251261,6257113,6284581,6354013,6397903,6410861,6454751,6477773,6521663,6583033,6681263,6704791,6748681,6753203,6845581,6908281,6952171,6969341,6975193,7032041,7047133,7075931,7145363,7172831,7178683,7235531,7250623,7348853,7374383,7466761,7529461,7533983,7577873,7626361,7636931,7642783,7670251,7699631,7732951,7796531,7827913,7840421,7871803,7903121,7968703,7998083,8031403,8041973,8075293,8090461,8134351,8138873,8197051,8201573,8245463,8293951,8337841,8417711,8432803,8461601,8495503,8522971,8539393,8621201,8636293,8693141,8698993,8760053,8822753,8915131,8919653,8963543,8987071,9026243,9085301,9118621,9190561,9213583,9257473,9288791,9314321,9320173,9383753,9417073,9427643,9460963,9473921,9490343,9517811,9582721,9587243,9631133,]; lena=#a; for tuple diameter=396 number of pretuples=10518300 after (%5,7,11) good:736 Раньше я уже генерировала паттерны и формулы для этого диаметра, допустимых паттернов 655, остальные недопустимые (736-655). Это и есть полуфабрикат. Теперь сделаю следующее: 1) удалю из этого полуфабриката переменные блоки с пустым вектором а; 2) вставлю для каждого оставшегося переменного блока постоянный блок; 3) добавлю "шапку" программы. И всё - текст программы готов, в нём обработка сразу всех 655 паттернов. Запускать для обработки всех паттернов надо одну программу. Правда, я ещё не пробовала сразу 655 паттернов обрабатывать. Сейчас у меня тестируется программа на обработку 360 паттернов с диаметром 444. Она тоже сделана вручную. Конечно, вставлять вручную 655 постоянных блоков сложно, но можно. За несколько приёмов вставлю. |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,964,801 RAC: 77 |
А в чем проблема-то? Хочется длинным путем идти? Пожалуйста: \l d432_formulae_new-2.txt; allocatemem(2^29); left(str,n)={v ="";tmp = Vec(str);ln=length(tmp);if(n > ln,n=ln);for(x=1,n,v=concat(v,tmp[x]););return(v)} { p=vector(19); p[1]=0; pl=19; \\vector for pattern pl - lenght diam=432; k=0; kw=0; n=diam\12; m=n-8; d2=diam\2; N=2*3*5*7*11*13*17*19; \\primorial lind=N+diam; \\ length of index array; forming of it vind=vector(lind,i,(i%2!=0) * (i%3!=0) * (i%5!=0) * (i%7!=0) * (i%11!=0) * (i%13!=0)* (i%17!=0)* (i%19!=0)); \\ generate prepatterns 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; \\ we have new prepattern; test it for good wt=1; forprime( w=5,13, 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, kw++; \\ we have the good pattern! print1("p=");print1(p);print1(";"); print (""); kf=0; jj=""; for( j=1,N, ind=1; for( i=1,pl, if( vind[j+p[i]]==0, ind=0; break ) ); if( ind==1,kf++; \\ we have formula jj=concat(jj,concat(j,",")); ); ); \\print(kf, " formulae"); print(); print1("a=["); print1(left(jj,length(jj)-1)); print1("];\n"); print("lena=#a;"); if(kf == 0,print("ZERO-ARRAY-A is found.");, ); print(""); ); \\if(kw>10,break(9)); ) ))) ))) ))); print("for tuple diameter=",diam," number of pretuples=",k, " after (%5,7,11) good:", kw) } |
Send message Joined: 6 Apr 17 Posts: 14144 Credit: 0 RAC: 0 |
Я написала, в чём проблема. У вас генерируются гепешки на каждый паттерн. Потом гепешку на каждый паттерн надо запускать отдельно. Ну, так я поняла из вашего описания. Даже если неправильно поняла, всё равно ничего не поняла. Вы сделали не то, что я просила в своём задании. Я не буду разбираться в вашем пути - ни в коротком, ни в длинном. В архиве лежит файл pat19_d444.txt. Это полуфабрикат текста программы. Мне нужна утилита, которая из полуфабриката сделает полную программу сразу для обработки всех 3401 паттернов с диаметром 444. Такую утилиту я пока не вижу. Вручную я сделала из этого полуфабриката программу на обработку первых 360 допустимых паттернов из 3401. То есть банально вручную вставила 360 постоянных блоков для 360 правильных переменных блоков. Кстати, обратите внимание: я извинилась за своё непонимание извините, ничего не поняла. |
©2024 (C) Progger