2014 dxdy logo

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

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




На страницу Пред.  1 ... 76, 77, 78, 79, 80  След.
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение02.08.2025, 16:30 
Аватара пользователя
gris
У меня есть устойчивое ощущение что вы не используете по меньшей мере две идеи ускорения счёта, что мы с Дмитрием совершенно открыто обсуждали и выше, и в других кортежных темах. Каждая из них даёт ускорение в разы. Обе — именно на PARI.

Я даже хотел программу показать, но потом решил что это чересчур — всё равно никто даже спасибо не скажет.

Ну ладно НМ, она, видимо, даже собственную тему внимательно читать не желает, но вы-то. Или хотите именно сами догадаться?

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение02.08.2025, 18:44 
Аватара пользователя
Да, мне интересно самому догадаться. Но я с удовольствием читаю умные посты, а потом вдруг сам догадываюсь.
Вот поиск приближений с кодом 7937: [[1,1,1,1,1,0,0,0,0,0,0,0,1]
Код:
{
pt15=[0, 18, 30, 60, 78, 84, 108, 114, 120, 144, 150, 168, 198, 210, 228];
pt=[0, 18, 30, 60, 78, 84, 168, 198, 210, 228];

w=31;
np1=0 ; print(np1," number from");
np2=0;  print(np2," number to");
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) L=%.2E\n",
        vp[1],vp[1],vp[lvp]+period,vp[lvp]+period,vp[lvp]+period-vp[1]);

printf("prove by %d#: ",prs[nw]);print(prs);
   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(pt," ", lpr," formulae");
   printf("pattern 15-228%2d\n",pt15);
   ptn=vector(15); ptn[1]=0;
   
   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),
       
         ind=1;
         npr=bpt;
         if( ind,
            for( k=2,6,
              npr=nextprime(npr+1);
              ptn[k]=npr-bpt;
              if(ptn[k]!=pt15[k],ind=0;break);
         ));
         if( ind,
            for( k=7,13,
               npr=nextprime(npr+1);
               ptn[k]=npr-bpt;
               if(ptn[k]>pt15[15]||ptn[k]==pt15[k],ind=0;break);
         ));   
         if( ind,
            for( k=14,15,
              npr=nextprime(npr+1);
              ptn[k]=npr-bpt;
              if(ptn[k]!=pt15[k],ind=0;break);
         ));   

        if( ind,
           printf("%13d: %2d %1d\n",bpt,ptn,vector(15,ii,ptn[ii]==pt15[ii]) );
        );

      );\\ if(ispseudo
     );\\ foreach
   );\\ forvec
}
0 number from
0 number to
[0,18,30,60,78,84,168,198,210,228]
patterns length 10
200560490130 period
search in 0 (0.E-9) - 200560490130 (2.0 E11) L=2.01 E11
prove by 31#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
[0, 18, 30, 60, 78, 84, 168, 198, 210, 228] 110602800 formulae
pattern 15-228[ 0,18,30,60,78,84,108,114,120,144,150,168,198,210,228]
123667210003: [ 0,18,30,60,78,84,96,106,156,166,178,186,190,210,228] [1,1,1,1,1,1,0,0,0,0,0,0,0,1,1]
104391178189: [ 0,18,30,60,78,84,88,102,112,138,154,160,172,210,228] [1,1,1,1,1,1,0,0,0,0,0,0,0,1,1]
  83217964729: [ 0,18,30,60,78,84,118,132,144,148,154,174,204,210,228] [1,1,1,1,1,1,0,0,0,0,0,0,0,1,1]
  98041918223: [ 0,18,30,60,78,84,110,134,144,156,168,186,204,210,228] [1,1,1,1,1,1,0,0,0,0,0,0,0,1,1]
  63778150643: [ 0,18,30,60,78,84,86,104,110,138,168,180,204,210,228] [1,1,1,1,1,1,0,0,0,0,0,0,0,1,1]

...

Размер и положение нулёвой дыры легко меняются.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение02.08.2025, 18:50 
Аватара пользователя
gris
Хорошо, посмотрю. А пока запощу то, что уже написал.

Что нужно сделать чтобы не вестись на дезу НМ про якобы наш с Дмитрием стёб? Взять две программы, свою и Дмитрия (или мою в соавторстве) и сличить.

И сама ведь в состоянии это сделать. Так нет же, раз за разом голову морочит и себе и другим. Хорошо что хоть некоторые подсказки дошли-таки до неё и в Боинк-проекте проигрыш по скорости уже не такой большой, хотя всё ещё гигантский — 6-7 тысяч раз. Но за 7 месяцев не найдено пока ни одной центральной 15-ки, не говоря уж о более длинных кортежах.

Я выше давал прогноз по последнему приложению — 2.5 центральных 15-к у них будет в среднем в месяц находиться, но это если по 100 тысяч юнитов в сутки будут обсчитывать.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение02.08.2025, 19:51 
Аватара пользователя
gris
Ну да, не используются здесь у вас эти два приёма. Один из них ну совсем простой, мне например, пришёл в голову почти сразу как только задумался об ускорении. Другой тоже вроде не очень сложный, его давным-давно использовал Дмитрий и тоже надо подумать как работает комп.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 11:17 
Yadryara в сообщении #1696166 писал(а):
прогноз по последнему приложению — 2.5 центральных 15-к у них будет в среднем в месяц
Время конечно покажет, но пока и без всяких серверов получается собрать около 100 значений за неделю судя по https://dxdy.ru/post1696197.html#p1696197 .

(Оффтоп)

Yadryara в сообщении #1696166 писал(а):
Что нужно сделать чтобы не вестись на дезу НМ про якобы наш с Дмитрием стёб?
Не забывайте, что многое из того, что она пишет, это просто наглое вранье.
Yadryara в сообщении #1696166 писал(а):
Так нет же, раз за разом голову морочит и себе и другим.
Это да.
Есть такое.

Как наглядный пример:
https://boinc.progger.info/odlk/forum_thread.php?id=119&postid=4286#4286
И копия примера:
https://web.archive.org/web/20190806175009/https://boinc.progger.info/odlk/forum_thread.php?id=119&postid=4286#4286
Копия сделана кликабельной по ссылкам, т.е. можно почитать все.

Yadryara в сообщении #1696166 писал(а):
по 100 тысяч юнитов в сутки будут обсчитывать
Не думаю, что осилят.
Последний раз когда НМ это делала, то собственноручно положила сервер о25 на несколько дней.
И даже если НМ 100 серверов сделает - не осилят.
Текущий подход к поиску не допускает масштабирования, впрочем писал про это ранее.
Нельзя из инвалидки сделать мерседес или белаз...
AFAIK
Т.о. опять нужно менять, хотя это можно было предусмотреть и сделать сразу, на стадии запуска...
"У нас ошибок не бывает!" (с) 1984

Но это будет "как всегда",
т.е. сначала "вы все идиоты, а у меня все правильно и без ошибок",
а потом через год, два, три "ой, фигня какая-то, не виноватая я, спасите, помогите...".

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 12:39 
Аватара пользователя
gris в сообщении #1695875 писал(а):
А для 7943 получается таки k=66465. Многовато.

Дошли руки проверить. Откуда вы это число взяли-то?

У меня получается 598413 предпаттернов и 42639 допустимых паттернов.

Стал смотреть где у вас в программе ошибка, пока не нашёл, но запускал несколько раз и частично, и полностью, смотрел вашу логику — числа у вас получаются ровно те же что и у меня: 598413 и 42639.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 13:26 
А у меня получается 15442 допустимых паттерна с кодом 7943:
Код:
{w=[0, 18, 30, 60, 78, 84, 108, 114, 120, 144, 150, 168, 198, 210, 228]; q=w[7..11]; n=0;
forstep(a=w[6]+2,w[12]-2,2, if(setsearch(q, a), next); w[7]=a;
   forstep(b=a+2,w[12]-2,2, if(setsearch(q, b), next); w[8]=b;
      forstep(c=b+2,w[12]-2,2, if(setsearch(q, c), next); w[9]=c;
         forstep(d=c+2,w[12]-2,2, if(setsearch(q, d), next); w[10]=d;
            forstep(e=d+2,w[12]-2,2, if(setsearch(q, e), next); w[11]=e;
               forprime(p=2,#w, if(#setminus([1..p-1], Set(-w%p))==0, next(2)); );
               n++;
); ); ); ); ); print(n);}
15442

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 14:31 
Аватара пользователя
Dmitriy40, у Вас ошибка в понимании. Для каждого числа кортежа только одна позиция из 5-ти плохая, а Вы выкинули все 5.

Для 7-го числа кортежа нужно выкидывать только 108, для 8-го — только 114 и так далее. Для 11-го только 150.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 14:50 
А, тогда да, 42639 паттернов, и проверка проще.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 14:55 
Аватара пользователя
Поправил:

Код:
(14:54) gp > {w=[0, 18, 30, 60, 78, 84, 108, 114, 120, 144, 150, 168, 198, 210, 228]; q=w[7..11]; n=0;
forstep(a=w[6]+2,w[12]-2,2, if(a==q[1], next); w[7]=a;
   forstep(b=a+2,w[12]-2,2, if(b==q[2], next); w[8]=b;
      forstep(c=b+2,w[12]-2,2, if(c==q[3], next); w[9]=c;
         forstep(d=c+2,w[12]-2,2, if(d==q[4], next); w[10]=d;
            forstep(e=d+2,w[12]-2,2, if(e==q[5], next); w[11]=e;
               forprime(p=2,#w, if(#setminus([1..p-1], Set(-w%p))==0, next(2)); );
               n++;
); ); ); ); ); print(n);}
42639

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 15:14 
Аватара пользователя
А что у меня не так?
Код:
(14:58) gp > {
pt=[0,18,30,60,78,84,  108,114,120,144,150, 168,198,210,228];
vc=[1, 1, 1, 1, 1, 1,    0,  0,  0,  0,  0,   1,  1,  1,  1];
ww=vector(5,i,[43,83]);
k=0; kk=0;
forvec(w=ww,
  pp=w*2;
  for(i=1,5,if(pp[i]==pt[i+6], next(2) ) );
  pa=pt; for(i=1,5,pa[6+i]=pp[i]); kk++;
  \\prove
  wt=1;
  forprime( wp=3,13, ws=wp-1;
    for (s=1,wp-1,
      for ( i=2,15, if( (s+pa[i])%wp==0, ws--; break ) );
    ); wt=wt*ws; if(wt==0, break);
  );
  if( wt!=0, k++; );\\print(pa) );

,2);
print("kk=",kk,"k=",k);
}
kk=598413k=42639

Количество препаттернов можно оценить gp > binomial((168-84)\2-1,5) = 749398
они выбираются 5 разных из вектора [86,88,90... 164, 166]
Вообще я совсем запутался в этих ваших кортежах и вечно у всех виноват. Каюсь, каюсь, каюсь.
И обещаю больше в них нос не совать.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 16:12 
Аватара пользователя
gris в сообщении #1696254 писал(а):
А что у меня не так?

Вроде всё так — 42639. Я спросил откуда у вас взялось число 66465?

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение03.08.2025, 16:47 
Аватара пользователя
Вы уже двадцать лет ищете кортежи, а мне даётся задание на полчаса. И причём меняется постоянно. То валидс ровно 10, то не меньше 10. Дело в строке
for(i=1,5,if(pp[i]==pt[i+6], next(2) ) );
Она не допускает лишних единиц в серёдке. А чтобы закрыть глаза на это дело я вместо удаления, но вдруг потом понадобится, вместо закомментить — сместил на невозможное if(pp[i]==pt[i] или , да, непростительно ошибся. Но паттерны не терялись, просто добавлялись с большим валидсом и даже для совершенного кортежа!

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение04.08.2025, 08:17 
Аватара пользователя
gris в сообщении #1696264 писал(а):
Вы уже двадцать лет ищете кортежи,

Я понимаю, что это скорее всего не мне адресовано. На всякий случай: я заинтересовался кортежами два года назад.

DemISdx в сообщении #1696211 писал(а):
Не забывайте, что многое из того, что она пишет, это просто наглое вранье.

Да, вот только что в этом убедился. Пыталась оболгать меня. Уж не буду цитировать, но отвечу, тем более что это по теме.

Yadryara в сообщении #1696166 писал(а):
Хорошо что хоть некоторые подсказки дошли-таки до неё и в Боинк-проекте проигрыш по скорости уже не такой большой,

Здесь где-то сказано, что это именно мои подсказки?

Нет, конечно. Это не я давным-давно подсказал grisу как надо делать распараллеливание по разрешённым остаткам. И gris тогда сделал программу с частичным распараллеливанием. И только лишь теперь в программе уже более полное разбиение — благодаря этому фильтрация гораздо лучше, а потому скорость гораздо выше. В последнем приложении фильтрация уже по периоду 61#, а не по 37#, как в других.

Это не моя была подсказка, но она дошла. Спустя год, а то и больше.

А моя подсказка, про разбиение на группы по чистоте, пока не дошла. Около года прошло. Соответственно, счёт идёт далеко не так эффективно и найденные в проекте 15-ки вполне могут оказаться не новыми, а совпасть с уже найденными нами с Демисом.

 
 
 
 Re: кортежи последовательных простых. ключ к 19-252
Сообщение06.08.2025, 14:16 
Аватара пользователя
Что-то у нас опять gris замолчал. А я так радовался, что вернулся к кортежной тематике.

gris в сообщении #1693207 писал(а):
Yadryara, вы знаете моё отношение к спектру. Это забава.

Но зачем тогда в заголовке темы написано "ключ к 19-252".

Я вот стал искать именно ключ, попытался выделить среди множества всех кандидатов получаемых по КТО наиболее перспективные, те для которых выше матожидание искомого кортежа. И теперь уже ясно что это удалось. Вот как ключ работает на примере центральных 15-к. Вы наверное знаете, что для периода $0-61\#$ КТО оставляет 90 квадриллионов кандидатов. Все эти кандидаты были разбиты на 12 групп по чистоте. И вот статистика по ним:

Код:
  Посчитано      Найдено           15-к
   в группе         15-к      на тысячy
                                 юнитов
G19   100 %            0           0
G20   100 %            3           2.30
G21   100 %           27           2.10
G22   100 %          108           1.91
G23
G24
G25    63 %          181           1.60
G26    92 %          148           1.35
G27   100 %           59           1.15
G28   100 %           16           1.16
G29   100 %            2           0.93
G30   100 %            0           0
                     ___
                     544

Загрязнение возрастает сверху вниз и с ростом загрязнения падает среднее количество находимых центральных 15-к.

 
 
 [ Сообщений: 1187 ]  На страницу Пред.  1 ... 76, 77, 78, 79, 80  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group