2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 33, 34, 35, 36, 37, 38, 39 ... 58  След.
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.09.2024, 17:40 
Аватара пользователя


29/04/13
8420
Богородский
Dmitriy40 в сообщении #1653985 писал(а):
Возможно мы оба считаем неправильно: уже первая цепочка 13-192 с начальным числом 2479672831189511 не является допустимой с точки зрения паттерна 19-252 (число 2479672831189511-30 делится на 29, т.е. при переборе вариантов 19-252 такая цепочка гарантировано найдена не будет,

Да, но это пока не колышет совершенно. Вопрос интересует конкретный: из каких групп получились эти чистые 13-ки? Две чистые группы дали прекрасные средние: 11 и 9. У меня есть ошибка? Вашу прогу не вижу, потому сказать не могу.

А почему других цепочек 219, а не 221 ?

-- 09.09.2024, 17:55 --

Вот Ваш вектор:

26 нулей
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 6, 28, 54, 47, 38, 19, 8, 2, 0, 1],

Вот мой:

16 нулей + [0, 6, 18, 24, 51, 51, 36, 17, 5, 1, 0]

У кого ошибка?

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.09.2024, 18:51 
Заслуженный участник


20/08/14
11913
Россия, Москва
Yadryara в сообщении #1653990 писал(а):
А почему других цепочек 219, а не 221 ?
Потому что к маю 2024 в боинках не нашли вот эти две цепочки (это тот самый недосчитанный тогда batch87 в SPT боинке):
4874789823823097579: 0 18 24 48 60 78 84 90 108 120 144 150 168
5110045405206766183: 0 18 24 48 60 78 84 90 108 120 144 150 168
А у меня они есть и потому у меня на 2 больше. Сейчас же взял из боинка потому что помнил что там они точно есть (взял откуда быстрее вспомнил).
Yadryara в сообщении #1653990 писал(а):
Вопрос интересует конкретный: из каких групп получились эти чистые 13-ки?
Так в этом и вопрос: каких именно групп? Они же разные для 13-192 как цепочек длиной 13 и для 13-192 как части 19-252. И первые ко вторым не приводятся! Точнее не всегда приводятся. Вы же не вычитали 30 из начального числа 13-192 чтобы перейти к начальному числу соответствующей 19-252? А я попробовал и получил вон то кратное 29 и вылет программы. Обходя который число цепочек сократилось до 155 и 99 штук.
И вопрос как считать группы остался подвешенным, я не вполне понимаю как правильно делать, ведь часть цепочек 13-192 выходит принадлежит к запрещённым вариантам, которых в vc[] просто нет и быть не может.
И соответственно непонятно кто и в чём ошибся. Может я, может Вы, может мы оба (да вдруг ещё и по разному) ... Вопрос не в ошибке вычислений, а в задаче, что именно вычислять. Раньше, с найденными цепочками в рамках поиска 19-252, такого вопроса и не стояло, все такие цепочки проходили по паттерну 19-252, а вот уже 6шт 17-240-1 Врублевского - не проходили (правда их и не обсчитывали по группам особо то, или могли тоже ошибиться).

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.09.2024, 19:13 
Аватара пользователя


29/04/13
8420
Богородский
Забыли пока про 19-252. Смотрим как себя ведут другие чистые кортежи.

После проверки по 3, 5, 7, 11, 13, 19, 23 и 29 образовалась цепочка из 13 родных и 17 чужих чисел. Как часто получается так, что все 13 родных чисел прошли все дальнейшие проверки и оказались простыми, а все 17 чужих проверки не прошли? В среднем 11 раз.

После проверки по 3, 5, 7, 11, 13, 19, 23 и 29 образовалась цепочка из 13 родных и 18 чужих чисел. Как часто получается так, что все 13 родных чисел прошли все дальнейшие проверки и оказались простыми, а все 18 чужих проверки не прошли? В среднем 9 раз.

И так далее. Вот что считается. И вроде как очевидно, что должно быть и дальнейшее снижение с ростом числа чужих (загрязняющих) чисел.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.09.2024, 19:19 
Заслуженный участник


20/08/14
11913
Россия, Москва
Тогда у меня посчитано неправильно, все два (или уже три?) раза. Потому что в том или ином виде существенно опирается на паттерн 19-252. Пользуйтесь своей программой.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.09.2024, 20:17 
Аватара пользователя


29/04/13
8420
Богородский
Ну да, всё чётко. От чистых к грязным. Стоило только перейти к тысячам. Взял буквально первый попавшийся паттерн. 11-144-4. 23 106 чистых кортежей.

Код:
         Len = 11        Valids = 11

Group                   vc      Fact  F*10^3/vc  Pred/Posl
11+11                   58        23    396.552     
11+12                  702       230    327.635      1.210
11+13                 4496      1376    306.050      1.071
11+14                14900      3817    256.174      1.195
11+15                29470      6744    228.843      1.119
11+16                34028      6494    190.843      1.199
11+17                20116      3424    170.213      1.121
11+18                 5758       869    150.920      1.128
11+19                  976       123    126.025      1.198
11+20                   88         6     68.182      1.848

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 06:36 
Аватара пользователя


29/04/13
8420
Богородский
То-то и оно, что это простое рассуждение пришло мне в голову ещё тогда, когда я впервые заговорил о порядке проверки:

Yadryara в сообщении #1649575 писал(а):
Что если искать чистую 19-ку надо прежде всего среди самых чистых, то есть среди 54760 кандидатов, а затем уже среди 6792018 и так далее...

Надо было озвучить простое рассуждение и не отвлекаться на неполные кортежи. Тем более, что оно универсальное и будет работать для самых разных паттернов.

Уточню терминологию.

Родные — числа предписанные паттерном, чужие — нет.

valids — количество родных простых чисел на отрезке числового ряда ограниченного диаметром, len — суммарное количество родных и чужих простых чисел на том же отрезке.

Если при поиске 19-ки найден кортеж для которого $valids = 19$, а $len > 19$, то такой кортеж называю грязным.

Если при поиске 19-ки найден кортеж для которого $valids < 19$, а $len = 19$, то такой кортеж называю неполным.

Если при поиске 19-ки найден кортеж для которого $valids = len = 19$, то такой кортеж называю чистым. Это и есть искомая 19-ка.

Следуя покерной терминологии, неполные кортежи также различаю по близости к цели: $valids = len - 1$ это дро, а $valids = len - 2$ — ранер-ранер.

Вот только что был приведён пример найденного дро:

Dmitriy40 в сообщении #1653977 писал(а):
19+29: 6887962633672761855714167: [ +0, 6, 12, -26, 30, 42, 72, 90, 96, 120, 126, 132, 156, 162, 180, 210, 222, 240, 246, 252], len=19, valids=18


Итак, ключ найден и предъявлен.

Осталось разобраться насколько же он ускоряет поиск. Для этого нужны другие тесты. Dmitriy40, Вы прикидывали как приспособить Вашу прогу для поиска 17-к. Лучше поискать другие цепочки, которые гораздо короче и потому быстрей находятся — 9-ки, 11-ки. Причём лучше выбирать такие кортежи, ожидаемое количество которых в проверяемом диапазоне около 11 штук.

Видимо, метод более эффективен для коротких кортежей.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 10:25 
Аватара пользователя


29/04/13
8420
Богородский
Yadryara в сообщении #1654101 писал(а):
Лучше поискать другие цепочки, которые гораздо короче и потому быстрей находятся — 9-ки, 11-ки. Причём лучше выбирать такие кортежи, ожидаемое количество которых в проверяемом диапазоне около 11 штук.

Посмотрел где сколько решений, начиная с 7-к:

Код:
  Pattern   Naideno  Diapazon        Time

   7-60    301 kort.    0-29#
   7-72-1  187 kort.    0-29#
   7-72-2  228 kort.    0-29#

   9- 84     7 kort.    0-29#
   9- 96     2 kort.    0-29#
   9-108     2 kort.    0-29#

   9- 96    19 kort.    0-31#                  setsearch   7.1 min
   9-108    16 kort.    0-31#     25.0 min     setsearch   9.5 min


Последний паттерн более-менее подходит. Среднее время нахождения кортежа:

$$\frac{25\cdot60}{16}\approx 94 sec/kort$$

Вот варианты разбиения этого паттерна по группам для 29#/17:

Код:
    9    9                                                    9
    +    +                                                    +
    6    7                                                   15
  [12, 692, 5806, 26648, 69110, 104178, 94798, 46586, 9906, 664]


Теперь надо перебирать кандидатов из групп 9+6, 9+7 и так далее. Как только 1-й чистый кортеж найдётся, засечь время. Оно в среднем должно быть меньше 94 секунд. А на сколько? Вот это и надо выяснить тестами.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 16:21 
Аватара пользователя


29/04/13
8420
Богородский
Что-то тишина. Я конечно сам попытался применить описанный метод.

Результат даже лучше ожиданий. С использованием setsearch среднее время нахождения кортежа — 36 секунд.

Я решил сделал разбивку по-другому, по 13#:

Код:
    9   9   9   9   9
    +   +   +   +   +
   11  12  13  14  15
  [ 6, 18, 52, 38, 14]

Понятно, что родных чисел всегда 9, это же 9-ка, так что упрощаю, группы различаю только по количеству чужих чисел:

Код:
   11  12  13  14  15
  [ 6, 18, 52, 38, 14]

Понятно, что если брать две самых чистых группы с 11-ю и 12-ю чужими числами, то, скорей всего, из 16-ти несколько кортежей найдётся.

Посему дальнейшую проверку делал только для этих групп. И вуаля! 4 кортежа нашлись всего за 76 секунд, то бишь по 19 секунд на кортеж вместо 36.

Прогу пока не показываю, она сырая. Ещё поиграюсь с параметрами.

16 кортежей покажу, проверьте, кто хочет:

Код:
1   185383291519   108
2   68245271009   108
3   189298731179   108
4   3905211463   108
5   169573477499   108
6   909894593   108
7   71200853743   108
8   117831765659   108
9   64921399163   108
10   178033552969   108
11   147674328983   108
12   21088950343   108
13   161539051673   108
14   125368946849   108
15   168011019049   108
16   66729642719   108

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 18:50 
Заслуженный участник


20/08/14
11913
Россия, Москва
Для тестов гораздо логичнее замерять не время, а количество проверенный кортежей до нахождения первого чистого, ведь общее количество кортежей знаем же - и сразу получаем долю от всех, что и важно, а не время, которое у всех будет разным.
И да, для коротких паттернов можно и на PARI тесты запускать.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 19:35 
Аватара пользователя


29/04/13
8420
Богородский
А я раньше говорил про количество. Что именно лучше считать? Но время всё-таки важнее. Надо сравнивать на одном и том же компе.

Вот как считал старым способом.

(Оффтоп)

Код:
allocatemem(2^28);

{print();

t0=getwalltime();

v=[0, 18, 24, 48, 54, 60, 84, 90, 108];

kkor=0;
w=2*3*5*7*11*13*17*19*23*29*31;

kkan=1;m=vector(31,i,[]);
forprime(p=2,#m, m[p]=setminus(vector(p,i,i-1),Set(-v%p));
printf("%d: x %d: %d\n",p,#m[p],m[p]);
kkan*=#m[p]);print();

print(w);print();
print(kkan);print();

mm=vector(200,i,[]); forprime(p=14,#mm, mm[p]=Set(-v%p));

x0=Mod(1,2);
foreach(m[31],m31,
foreach(m[29],m29,
foreach(m[23],m23,
foreach(m[19],m19,
foreach(m[17],m17,
foreach(m[13],m13,
foreach(m[11],m11,
foreach(m[7],m7,
foreach(m[5],m5,
foreach(m[3],m3,
kan=lift(chinese([x0,Mod(m31,31),Mod(m29,29),Mod(m23,23),Mod(m19,19),Mod(m17,17),
Mod(m13,13),Mod(m11,11),Mod(m7,7),Mod(m5,5),Mod(m3,3)]));
no++;

forprime(p=32,#mm, if(setsearch(mm[p], kan%p), next(2)));

if(ispseudoprime(kan)
&& nextprime(kan+1)-kan==v[2]
&& nextprime(kan+v[2]+1)-kan==v[3]
&& nextprime(kan+v[3]+1)-kan==v[4]
&& nextprime(kan+v[4]+1)-kan==v[5]
&& nextprime(kan+v[5]+1)-kan==v[6]
&& nextprime(kan+v[6]+1)-kan==v[7]
&& nextprime(kan+v[7]+1)-kan==v[8]
&& nextprime(kan+v[8]+1)-kan==v[9],

kkor++;
print(kkor,"   ",kan);
);

))))))))));

print();print();
print(kkan);
print(no);

print();
print(strtime(getwalltime()-t0));
print();

quit;}


А вот так новым.

(Оффтоп)

Код:
{print();

t0=getwalltime();

v=[0, 18, 24, 48, 54, 60, 84, 90, 108];

d=v[#v];

a=setminus(vector(d/2,i,i*2),v);

vdel   = [3,5,7,11,13];
vdelob = [3,5,7,11,13,17,19,23,29,31];pro=1; w=2*vecprod(vdel);

kgr=vector(15);slc=0;kkor=0;

print(w);
print();

m=vector(31,i,[]);

for(j=1, #vdelob, p=vdelob[j];

m[p]=setminus(vector(p,i,i-1),Set(-v%p));pro*=#m[p];

printf("%d:x%d:%d:   %d\n",p,#m[p],m[p],pro););

mm=vector(200,i,[]); forprime(p=32,#mm, mm[p]=Set(-v%p));

x0=Mod(1,2);

foreach(m[13],m13,
foreach(m[11],m11,
foreach(m[7],m7,
foreach(m[5],m5,
foreach(m[3],m3,

y=chinese([x0,Mod(m3,3),Mod(m5,5),Mod(m7,7),Mod(m11,11),Mod(m13,13)]);

x=lift(y);

kkan++;

lc=0;

for(i=1, #a,

for(j=1, #vdel, p=vdel[j];

if((x+a[i])%p==0, next(2)));

lc++);
kgr[lc]++;

if(lc<=12,

print();print1(lc);

foreach(m[31],m31,
foreach(m[29],m29,
foreach(m[23],m23,
foreach(m[19],m19,
foreach(m[17],m17,
kan=lift(chinese([y,Mod(m31,31),Mod(m29,29),Mod(m23,23),Mod(m19,19),
Mod(m17,17)]));
no++;

forprime(p=32,#mm, if(setsearch(mm[p], kan%p), next(2)));

if(ispseudoprime(kan)
&& nextprime(kan+1)-kan==v[2]
&& nextprime(kan+v[2]+1)-kan==v[3]
&& nextprime(kan+v[3]+1)-kan==v[4]
&& nextprime(kan+v[4]+1)-kan==v[5]
&& nextprime(kan+v[5]+1)-kan==v[6]
&& nextprime(kan+v[6]+1)-kan==v[7]
&& nextprime(kan+v[7]+1)-kan==v[8]
&& nextprime(kan+v[8]+1)-kan==v[9],

kkor++;
print();
print(kkor,"   ",kan);
);

)))));

);

)))));

print();
print(kkan);
print(no);

print();print(kkan, "   ",kgr[11..#kgr], "   ",vecsum(kgr));print();

print();
print(strtime(getwalltime()-t0));
print();

quit;}

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 19:57 
Заслуженный участник


20/08/14
11913
Россия, Москва
Время важнее, но оно однозначно пересчитывается из количества. На каждом компе отдельно (по разному). И количества можно сравнивать независимо от компов (скорости). Это полезнее.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 20:13 
Аватара пользователя


29/04/13
8420
Богородский
Я же не против. Какие счётчики куда добавить?

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 20:32 
Заслуженный участник


20/08/14
11913
Россия, Москва
Какой проверенный кортеж по счёту оказался чистым. Этого достаточно, ведь общее количество кортежей во всех группах известно, как и их распределение по группам.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение10.09.2024, 21:03 
Аватара пользователя


29/04/13
8420
Богородский
Окей, воткнул счётчик прямо перед ispseudoprime.

Результаты:

Старый способ:

Код:
1    185383291519     54872
2     68245271009     78498
3    189298731179    235226
4      3905211463    296936
5    169573477499    429969
6       909894593    537207
7     71200853743    788833
8    117831765659    855946
9     64921399163    897664
10   178033552969    942459
11   147674328983    980790
12    21088950343   1006275
13   161539051673   1037528
14   125368946849   1115123
15   168011019049   1374866
16    66729642719   1544144


Новый:

Код:
1   168011019049    47137
2    68245271009   110178
3      909894593   174991
4   169573477499   198739

То есть когда новая программа пришла на проверку кортежа в 47137-й раз, 1-й кортеж был обнаружен.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение11.09.2024, 07:25 
Аватара пользователя


29/04/13
8420
Богородский
Да, видно что результативность новым методом выше. И всё-таки смотреть по времени мне больше нравится, это же комплексная оценка. И её удалось ещё существенно улучшить!

Yadryara в сообщении #1654144 писал(а):
Ещё поиграюсь с параметрами.

Разбивку по группам сделал по 17#, а количество чужих не более 11. И всего лишь за 78 секунд было найдено 6 кортежей. 13 секунд на кортеж! Это вам не 36 секунд старым способом.

Я писал об ожидании ускорения в 1.8 раза, а тут 2.7 раза.

Ну а сами кортежи и количество проверок вот:

Код:
1   169573477499   28046
2   161539051673   71289
3     3905211463   130044
4    68245271009   149493
5   168011019049   186013
6   117831765659   298342

Разбивка по группам вот:

Код:
Чужих       9  10   11   12   13  14  15
Вариантов   2  50  156  388  320  98  10         1024

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 861 ]  На страницу Пред.  1 ... 33, 34, 35, 36, 37, 38, 39 ... 58  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: gris


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group