Поиск КПППЧ в нулевом периоде

Message boards : Cafe : Поиск КПППЧ в нулевом периоде
Message board moderation

To post messages, you must log in.

Previous · 1 · 2 · 3 · 4 · 5 · 6 . . . 11 · Next

AuthorMessage
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14513 - Posted: 3 Jun 2024, 2:42:54 UTC
Last modified: 3 Jun 2024, 7:20:17 UTC

Теперь у меня центральные 13-ки ищутся алгоритмом поиска в нулевом периоде для периодов 53#, 59# и 61#.
Но для периодов 53# и 59# по-другому программа написана: ищутся Norm-числа и выводятся порциями по 10000 в выходные файлы.
Потом я эти Norm-числа проверяю на valids утилитой.
Это очень быстро делается.
Но всё же лучше делать это прямо в программе, что я и реализовала для периода 61#.

Первые две программы теперь уже не переделаешь, они давно работают и до какай добавки они дошли - одному Богу известно.
Последняя проверенная добавка известна.
Можно написать программу, которая посчитает, сколько было сгенерировано добавок до последней проверенной.
А дальше что?
Можно попытаться начать программу с найденного номера добавки, но до этой добавки генерация будет выполняться вхолостую и... о-ч-е-н-ь долго.
Так что, пусть эти программы работают, как есть.
ID: 14513 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14514 - Posted: 3 Jun 2024, 8:16:26 UTC
Last modified: 3 Jun 2024, 8:20:18 UTC

По вопросу распараллеливания...
gris получил консультацию от друга.

Публикую с разрешения.

...Распараллелить по порядку формирования формул (не по их величине) вполне возможно. Помнишь, как до знакомства с forvec ты его делал через вложенные циклы. Распечатай векторы остатков для данного паттерна и критерия.
<моя вставка с примером>
[0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] pattern L=19
223092870 period
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [3,4]
11 2 [4,8]
13 2 [3,5]
17 2 [1,2]
19 6 [2,3,11,12,16,17]
23 6 [3,9,10,14,15,21]
prove by 23#: 2304 formulae
Выбери для 23 из 6 остатков один и вручную укороти вектор остатков. Посылай на forvec и будет тебе счастье. И так шесть программ. Будут считаться независимо 384 формулы 6 раз без пересечений. Ну а для периода 47# можно 2 или 3 вектора укорачивать. В зависимости от цели. Можно и автоматом это делать. Типа задавать вариант :?:
<конец местов>
Я так понял, что нужно всего одно исправление
rip =concat(rip,r) );
\\!!!!!
if( ip==9, rip=[3] );
\\!!!!!
lpr=lpr*#rip; printf("%d %d %d\n", prs[ip], #rip,rip);
wd[ip]=rip;
и потом 5 раз подставить 9,10,14,15,21
Вот что будет
[0,6,12,30,42,72,90,96,120,126,
223092870 period
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [3,4]
11 2 [4,8]
13 2 [3,5]
17 2 [1,2]
19 6 [2,3,11,12,16,17]
23 1 [3]
prove by 23#: 384 formulae
Для 53# может быть много вариантов.

Прочитала, перечитала...
Увы, ничего не поняла :(
Потому что генерацию добавок писал gris, и я в этом абсолютно не разбираюсь.

Возможно, консультация будет кому-то полезна.

Меня обрадовало это
Распараллелить по порядку формирования формул (не по их величине) вполне возможно.

Значит, есть надежда.
ID: 14514 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14515 - Posted: 3 Jun 2024, 8:28:23 UTC
Last modified: 3 Jun 2024, 8:50:31 UTC

Ахиллес-3 шпарит!

. . . . . . . . 
9971025156794972194321: [0, 12, 42, 48, 66, 90, 96, 102, 126, 132, 148, 150, 192]
valids=10
number form=1119486387

37483735944286251964741: [0, 12, 46, 60, 78, 90, 96, 102, 126, 148, 150, 180, 192]
valids=10
number form=1362607979

73042533333612890471821: [0, 12, 52, 60, 78, 90, 96, 102, 126, 132, 172, 180, 192]
valids=10
number form=1625438270

10345156392605877807361: [0, 12, 42, 60, 78, 90, 96, 102, 106, 132, 178, 180, 192]
valids=10
number form=1660261071

46190003030359500726811: [0, 12, 42, 46, 88, 90, 96, 102, 126, 132, 150, 180, 192]
valids=11
number form=1752483390

Последнее приближение с valids=11, хорошенькое :)

Добавочка, давшая приближение 46190003030359500726811, 1752483390-я.
Количество сгенерированных добавок приближается к 2 миллиардам!!

Сейчас разверну последнее приближение для проверки.

Готово!

{46190003030359500726811, 46190003030359500726823, 46190003030359500726853, *46190003030359500726857,
*46190003030359500726899, 46190003030359500726901, 46190003030359500726907, 46190003030359500726913,
46190003030359500726937, 46190003030359500726943, 46190003030359500726961, 46190003030359500726991,
46190003030359500727003
}

Всё верно.
Две "дырки" рядышком.
ID: 14515 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14516 - Posted: 3 Jun 2024, 9:37:17 UTC
Last modified: 3 Jun 2024, 9:54:49 UTC

Цитата из письма gris
Так у вас программа действует, попробуйте там вставить всего одну строчку.

Хех!
У меня сейчас действуют, как минимум, программ 10: для 13-к, 15-к, 17-к, на разных периодах и по-разному реализованные.

Хорошо, отправляю gris самую последнюю версию, центральные 13-ки на периоде 61#.
Прошу "вставить одну строчку" в эту программу.
Получаю очень пространное разъяснение, что куда надо вставить.
Вот оно

Вот блок формирования массива остатков
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) ); printf("%d %d %d\n", prs[ip], #rip,rip);
lpr=lpr*#rip;
wd[ip]=rip;
); \\for ip
print(lpr," formulae expected");
По каждому простому от2 до 61 формируется вектор допустимых остатков.
Вставляю печать каждого вектора.
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [5,6]
11 2 [1,5]
13 2 [7,9]
17 6 [1,11,13,14,15,16]
19 8 [3,4,6,8,9,11,13,14]
23 12 [1,5,7,8,10,14,16,17,18,20,21,22]
29 16 [1,2,3,4,5,6,7,8,9,10,12,15,18,22,25,28]
31 18 [1,4,7,8,9,10,11,12,13,14,15,16,17,18,21,24,26,30]
37 24 [1,2,3,4,6,7,10,11,12,13,17,18,19,20,23,24,26,27,28,29,31,33,34,36]
41 28 [1,2,3,4,5,6,7,8,9,10,11,12,15,17,18,19,20,23,24,26,28,30,31,34,35,36,37,39]
43 30 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,24,25,28,29,30,32,34,36,37,38,41,42]
47 34 [1,2,3,6,7,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,36,37,40,41,42,44,46]
53 40 [1,2,3,5,6,7,8,12,13,14,15,17,18,19,21,22,23,24,25,26,28,29,30,31,34,35,36,37,38,39,42,43,44,45,47,48,49,50,51,52]
59 46 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,19,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,48,49,50,53,54,55,57]
61 48 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24,25,27,28,29,30,31,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,53,54,55,58,59,60]
321361210559692800 formulae expected
Как это работает: В каждом векторе выбираем один элемент. По этому набору находится ровно одна формула по КТО. Постепенно перебираем все варианты.
Как можно разделить генерацию формул?
оставляем в векторе для 61 один элемент из 48. Вручную
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) );
if( prs[ip]==61, rip=[2]);
lpr=lpr*#rip; printf("%d %d %d\n", prs[ip], #rip,rip);
wd[ip]=rip;
); \\for ip
print(lpr," formulae expected");
запускаем
(11:48) gp > \r C:/GRIS/13porc_61_valids_test.gp;
0 from number
0 to number
[0,12,42,60,66,90,96,102,126,132,150,180,192]
patterns length 13
117288381359406970983270 period
search in 0 (0.E-9) - 117288381359406970983270 (1.2 E23)
central 3: [90,96,102]
prove by 61#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [5,6]
11 2 [1,5]
13 2 [7,9]
17 6 [1,11,13,14,15,16]
19 8 [3,4,6,8,9,11,13,14]
23 12 [1,5,7,8,10,14,16,17,18,20,21,22]
29 16 [1,2,3,4,5,6,7,8,9,10,12,15,18,22,25,28]
31 18 [1,4,7,8,9,10,11,12,13,14,15,16,17,18,21,24,26,30]
37 24 [1,2,3,4,6,7,10,11,12,13,17,18,19,20,23,24,26,27,28,29,31,33,34,36]
41 28 [1,2,3,4,5,6,7,8,9,10,11,12,15,17,18,19,20,23,24,26,28,30,31,34,35,36,37,39]
43 30 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,24,25,28,29,30,32,34,36,37,38,41,42]
47 34 [1,2,3,6,7,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,36,37,40,41,42,44,46]
53 40 [1,2,3,5,6,7,8,12,13,14,15,17,18,19,21,22,23,24,25,26,28,29,30,31,34,35,36,37,38,39,42,43,44,45,47,48,49,50,51,52]
59 46 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,19,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,48,49,50,53,54,55,57]
61 1 [2]
6695025219993600 formulae expected
количество формул уменьшилось в 48 раз!
Но придётся запустить 48 программ с
if( prs[ip]==61, rip=[2]);
if( prs[ip]==61, rip=[4]);
if( prs[ip]==61, rip=[5]);
...
if( prs[ip]==61, rip=[60]);

Генерация будет проходить независимо, без повторов и полностью.
Можно разделить дополнительно по 59. Количество формул сократится в 48*46 раз.
Причём программы работают независимо друг от друга и хоть на разных компьютерах.
Наверное, это не совсем распараллеливание, но это разделение.

М-да!

Как можно разделить генерацию формул?
оставляем в векторе для 61 один элемент из 48. Вручную ....

Вот с этого момента я пас!
Ничего не могу вставлять вручную, потому что блок этот для меня сплошной туман.

Ну, как я и предполагала, вставкой одной строчки не обошлось.

Итак, для периода 61# получилось 48 отдельных программ, которые можно запускать отдельно хоть на разных компьютерах.
Замечательно!

Как я понимаю, для периода 53# отдельных программ должно получиться меньше.

Цитата из моего письма
Могу прислать вам программу для 53#, которая тоже работает.
Для неё будет поменьше отдельных программ.
Правильно понимаю?

Или вы делаете это "разделение" полностью (на основе действующей программы для 53#) и присылаете мне готовые программы, сколько получится; я не Ахиллесе-3 могу запустить 18 программ и ещё 7 программ на Ахиллесе, или всё остаётся на уровне консультации.
ID: 14516 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14517 - Posted: 3 Jun 2024, 10:42:06 UTC
Last modified: 3 Jun 2024, 10:44:18 UTC

Ответ gris полностью

Ну вот для 53
prove by 53#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53]
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [5,6]
11 2 [1,5]
13 2 [7,9]
17 6 [1,11,13,14,15,16]
19 8 [3,4,6,8,9,11,13,14]
23 12 [1,5,7,8,10,14,16,17,18,20,21,22]
29 16 [1,2,3,4,5,6,7,8,9,10,12,15,18,22,25,28]
31 18 [1,4,7,8,9,10,11,12,13,14,15,16,17,18,21,24,26,30]
37 24 [1,2,3,4,6,7,10,11,12,13,17,18,19,20,23,24,26,27,28,29,31,33,34,36]
41 28 [1,2,3,4,5,6,7,8,9,10,11,12,15,17,18,19,20,23,24,26,28,30,31,34,35,36,37,39]
43 30 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,24,25,28,29,30,32,34,36,37,38,41,42]
47 34 [1,2,3,6,7,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,36,37,40,41,42,44,46]
53 40 [1,2,3,5,6,7,8,12,13,14,15,17,18,19,21,22,23,24,25,26,28,29,30,31,34,35,36,37,38,39,42,43,44,45,47,48,49,50,51,52]
Тут 145544026521600 добавок. Если мы генерацию разделим по 53 на 40 частей, то никакого эффекта мы не получим. Дело в том, что как ни распараллеливай и не разделяй общее количество добавок не изменится. Смысл только в том, чтобы не было повторной генерации. Но при таком количестве добавок...
Кстати, а как же вы применяете генерацию, если "потому что не понимаю блок генерации добавок."
Ну да ладно. Можно это изменение вынести во вводную часть. Задавать какой-нибудь
rip53=[2];
либо даже номер. Вы же задаёте номера периода. Ну с 61# всё происходит в нулевом.
В общем, мне наговорили много про распараллеливание и когда оно эффективно, но я тоже ничего не понял. Только то, что это пустая затея:(((

И мой ответ тоже полностью.

>Если мы генерацию разделим по 53 на 40 частей, то никакого эффекта мы не получим. Дело в том, что как ни распараллеливай и не разделяй общее количество добавок не изменится. Смысл только в том, чтобы не было повторной генерации. Но при таком количестве добавок...

Ничего не поняла!
Для периода 61# можно разделить на отдельные программы, а для периода 53# нельзя???

>Кстати, а как же вы применяете генерацию, если "потому что не понимаю блок генерации добавок."

А чего же тут непонятного?
У меня же блок генерации во всех программах одинаковый, только задаю период w.
Вы же этот блок писали!
Я его копирую и в свои программы вставляю.

>Ну с 61# всё происходит в нулевом.

Для периода 53# тоже всё происходит в нулевом периоде.
Никакой разницы, потому что это алгоритм такой - "поиск в нулевом периоде".

>Только то, что это пустая затея:(((

Ну, рыдать не буду.
Я и сразу знала, что вы не будете ничего делать, потому что лень.
Да и зачем?
Всё - пустая затея, даже и сам проект.
Кстати, и ваша тема про ключ к 19-252 тоже пустая затея!
Нафиг затевали?

И нафиг присылали мне рассказ вашего друга.
Друг знает, как делать, но делать ведь не будет.
Вы знаете, как делать, но делать тоже не будете.
А я не знаю, как делать.
Программа сложная и разделать её надо умеючи!

Не отвлекайте меня больше пустыми разговорами, от которых никакого толка нет.
Я пишу новую программу для 17-к.

Если помогать, так надо помогать, а не бла-бла-бла.
ID: 14517 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14518 - Posted: 3 Jun 2024, 18:10:43 UTC
Last modified: 3 Jun 2024, 18:27:06 UTC

Ещё раз перечитываю

Ну вот для 53
prove by 53#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53]
2 1 [1]
3 2 [1,2]
5 2 [1,2]
7 2 [5,6]
11 2 [1,5]
13 2 [7,9]
17 6 [1,11,13,14,15,16]
19 8 [3,4,6,8,9,11,13,14]
23 12 [1,5,7,8,10,14,16,17,18,20,21,22]
29 16 [1,2,3,4,5,6,7,8,9,10,12,15,18,22,25,28]
31 18 [1,4,7,8,9,10,11,12,13,14,15,16,17,18,21,24,26,30]
37 24 [1,2,3,4,6,7,10,11,12,13,17,18,19,20,23,24,26,27,28,29,31,33,34,36]
41 28 [1,2,3,4,5,6,7,8,9,10,11,12,15,17,18,19,20,23,24,26,28,30,31,34,35,36,37,39]
43 30 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,24,25,28,29,30,32,34,36,37,38,41,42]
47 34 [1,2,3,6,7,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,36,37,40,41,42,44,46]
53 40 [1,2,3,5,6,7,8,12,13,14,15,17,18,19,21,22,23,24,25,26,28,29,30,31,34,35,36,37,38,39,42,43,44,45,47,48,49,50,51,52]
Тут 145544026521600 добавок. Если мы генерацию разделим по 53 на 40 частей, то никакого эффекта мы не получим. Дело в том, что как ни распараллеливай и не разделяй общее количество добавок не изменится. Смысл только в том, чтобы не было повторной генерации. Но при таком количестве добавок...

Поняла только вот что: всю генерацию можно разделить на отдельные части по остаткам для простого 53, которых 40 штук.
Тогда в каждой части будет генерироваться 145544026521600/40 добавок.
И отдельно будет выполняться каждая из этих 40 частей (отдельные программы?).
Далее, каждую из этих 40 частей можно разбить ещё по остаткам простого 47, которых 34 штуки.
Тогда в каждой новой части будет генерироваться 145544026521600/(40*34) добавок.
И надо будет отдельно выполнять генерацию 1360 частей (отдельных программ?).

Если я правильно понимаю, при таком разделении генерация будет выполняться полностью и правильно, без потерь.

Так, для BOINC разбиение вполне годится.
Можно идти и дальше: каждую из 1360 частей разбить на 30 частей по остаткам простого 43.
Теперь в каждой части будет генерироваться 145544026521600/(40*34*30) добавок.
А частей будет 40800.
Ну, то бишь вушки.
Пока ещё слишком крупные.
Можно ещё разделить.

Понятно, что процесс разделения надо максимально автоматизировать, вручную разбивать - сдохнуть можно.
ID: 14518 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14519 - Posted: 3 Jun 2024, 18:20:08 UTC
Last modified: 3 Jun 2024, 18:29:14 UTC

gris писал
Причём программы работают независимо друг от друга и хоть на разных компьютерах.
Наверное, это не совсем распараллеливание, но это разделение.

Очень хорошо!
В BOINC программы и будут выполняться на разных компьютерах.

Ну что же, путь решения задачи проложили.
Осталось запустить BOINC-проект.
И начать сразу с поиска ключевых 17-к, они ближе всех к 19-ке с минимальным диаметром - всего один шаг, одно продолжение.
ID: 14519 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14520 - Posted: 3 Jun 2024, 18:52:54 UTC
Last modified: 3 Jun 2024, 19:01:23 UTC

И всё же это не многопоточный режим в полном смысле этого понятия.
Пишут, что PARI/GP поддерживает многопоточный режим (Макс Алексеев, например).

Вот я хочу запустить свою программу на Ахиллече-3, у которого 20 ядер.
При этом ничего не должно делаться вручную.
Если многопоточный режим поддерживается, значит, ключ есть для запуска в многопоточном режиме.
Я так понимаю.
Ну, допускаю, что в программе надо что-нибудь вручную подкорректировать, но не 40 же отдельных программ делать вручную!
И каждую из них отдельно запускать.

Или, к примеру, как выполнить эту программу на кластере?
В кластере, пишут, 1000 потоков.
И как же распараллелить программу на эти 1000 потоков?
Сама же она вряд ли распараллелится, надо дать ей какие-то инструкции для распараллеливания.

Или BOINC опять же.
Вон программа Белышева распараллеливается ведь!
Да, сделана программка для генерации вушек, то есть как раз для распараллеливания всего процесса на отдельные задания.
Точно так же можно что-то придумать для распараллеливания моей программы, не вручную, а с помощью специальной программы.
ID: 14520 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14521 - Posted: 3 Jun 2024, 19:10:45 UTC
Last modified: 3 Jun 2024, 19:16:41 UTC

gris писал
В общем, мне наговорили много про распараллеливание и когда оно эффективно, но я тоже ничего не понял. Только то, что это пустая затея:(((

А с этим категорически не согласна!
В проекте по ОДЛК (в ручном режиме) у нас был эксперимент для коллективных вычислений.
Demis делал многопоточную программу. (из программы Белышева, там тоже Белышев создал много разных программ).
И она прекрасно работала даже на моей черепашке, которая имела всего два ядра!

Томаш прекрасно делал многопоточные программы.
При этом, насколько помню, у него программа сама определяла, на сколько потоков можно распараллелить (по количеству ядер на компьютере).

И даже г. Петухов делал многопоточную программу на PARI/GP в проекте Hugo.
Я пыталась в ней разобраться, но ничего не поняла.
Однако не сделала вывод, что это полная фигня.
Если я чего-то не понимаю, это не значит, что фигня.
Это просто значит, что знаний у меня маловато.
ID: 14521 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14522 - Posted: 5 Jun 2024, 2:53:34 UTC
Last modified: 5 Jun 2024, 6:56:36 UTC

Симпатичное приближение к центральной 13-ке с симметричным расположением "дырок", с центральной тройкой

1196793018180911235481: [0, 12, 42, 60, 78, 90, 96, 102, 106, 132, 150, 180, 192]
1196793018180911235481: [0, 0, 0, 0, 12, 0, 0, 0, -20, 0, 0, 0, 0]
1196793018180911235481: [1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1]
valids=11
code=1911

Приближения с valids=11 появляются часто, приближения с valids=12 перестали появляться.

Интересно: приближение такой структуры повторилось!

1901839925687961984121: [0, 12, 42, 60, 70, 90, 96, 102, 112, 132, 150, 180, 192]
1901839925687961984121: [0, 0, 0, 0, 4, 0, 0, 0, -14, 0, 0, 0, 0]
1901839925687961984121: [1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1]
valids=11
code=1911
ID: 14522 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14523 - Posted: 5 Jun 2024, 3:05:04 UTC
Last modified: 5 Jun 2024, 3:06:07 UTC

Это поиск центральных 13-к в нулевом периоде для периода 61#

. . . . . . . . . . . 

50172997802302450229551: [0, 12, 42, 60, 82, 90, 96, 102, 112, 132, 166, 180, 192]
valids=10
number form=2120291203

99371126129221482670531: [0, 12, 42, 46, 48, 90, 96, 102, 126, 132, 166, 180, 192]
valids=10
number form=2664119502

8870875288013458664341: [0, 18, 42, 60, 66, 82, 96, 102, 126, 132, 150, 190, 192]
valids=10
number form=2916943946

61679718783070275822331: [0, 12, 60, 70, 82, 90, 96, 102, 126, 132, 150, 180, 192]
valids=10
number form=3310734939

52422823391745621829411: [0, 12, 46, 52, 66, 90, 96, 112, 126, 132, 150, 180, 192]
valids=10
number form=3698204579

33932347551674762394601: [0, 12, 42, 60, 66, 90, 106, 112, 126, 132, 150, 178, 192]
valids=10
number form=4270044148
. . . . . . . . . 

Очень интересно!
Стабильно идут приближения с valids=10, очень редко появляются приближения с valids=11.

Обратите внимание: последняя добавка, давшая приближение, имеет номер 4270044148.
Сгенерировано и проверено более 4 миллиардов добавок!
Да, счёт пошёл на миллиарды.

Если бы распараллелить программу и запустить хотя бы 10 отдельных частей, счёт пошёл бы на десятки миллиардов.
gris расписал алгоритм разделения, для периода 61# можно легко (!) сделать 48 отдельных частей.
Не обязательно делать и запускать все 48 отдельных программ, можно запустить, например, всего 10 программ.
Убыстрение поиска будет в 10 раз!

Но всё осталось на уровне разговора, как легко сделать.
Вердикт gris: пустая затея!
ID: 14523 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14524 - Posted: 5 Jun 2024, 3:19:22 UTC
Last modified: 5 Jun 2024, 3:55:49 UTC

Ещё раз перечитала рассказ gris о "разделении".
Пытаюсь вникнуть.

61 48 [2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24,25,27,28,29,30,31,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,53,54,55,58,59,60]

В блок генерации добавок надо вставить строчку, выделенную красным

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) );
if( prs[ip]==61, rip=[2]);
lpr=lpr*#rip; printf("%d %d %d\n", prs[ip], #rip,rip);
wd[ip]=rip;
); \\for ip
print(lpr," formulae expected");

Тэк-с, вроде понятно, при этом будут генерироваться добавки только для остатка 2 для простого 61.

Сейчас попробую :)
Вставлю такую строку
if( prs[ip]==61, rip=[4]);

И у меня будут генерироваться добавки для остатка 4 для простого 61.
Да?

Пошла пробовать.
ID: 14524 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14525 - Posted: 5 Jun 2024, 3:32:23 UTC
Last modified: 5 Jun 2024, 3:37:42 UTC

Программа запустилась!
Ура!

break[4]> \r 13porc_61_valids_test_gris.txt
   logfile = "13porc_61_valids_test_gris_res.txt"
0 from number
0 to В  number
[0,12,42,60,66,90,96,102,126,132,150,180,192]
patterns length 13
117288381359406970983270 period
search in 0 (0.E-19) - 117288381359406970983270 (1.2 E23)
central 3: [90,96,102]
prove by 61#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
6695025219993600 formulae expected

Ждём вывода приближений.

Цитата из письма gris
6695025219993600 formulae expected
количество формул уменьшилось в 48 раз!

Да, у меня тоже показывает
6695025219993600 formulae expected

Значит, всё правильно, генерируется 48-я часть всех добавок.
ID: 14525 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14526 - Posted: 5 Jun 2024, 3:41:00 UTC

А программа, которая у меня давно работает (без всякого разделения), наверное, соответствует строке
if( prs[ip]==61, rip=[2]);
Правильно?

А для следующей части надо вставить строку
if( prs[ip]==61, rip=[5]);

Сейчас попробую.
ID: 14526 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14527 - Posted: 5 Jun 2024, 3:45:27 UTC
Last modified: 5 Jun 2024, 7:01:31 UTC

Ой, а вот и первое приближение в только что запущенной части

break[4]> \r 13porc_61_valids_test_gris.txt
   logfile = "13porc_61_valids_test_gris_res.txt"
0 from number
0 to В  number
[0,12,42,60,66,90,96,102,126,132,150,180,192]
patterns length 13
117288381359406970983270 period
search in 0 (0.E-19) - 117288381359406970983270 (1.2 E23)
central 3: [90,96,102]
prove by 61#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
6695025219993600 formulae expected
90537431866355605035301: [0, 12, 42, 60, 66, 90, 96, 138, 150, 172, 178, 180, 192]
valids=9
number form=9836410

Добавочка 9836410-я.

Кажется, работает.
Сейчас третью часть запущу.

Готово!

Ну, вот три части из 48 уже работают.
Эх, где же мой ВЦ ?! :(
Я сейчас запустила бы все 48 частей запросто!

Информация, полученная два дня назад, медленно в мозгу устаканивалась :)
Чудесным образом устаканилась!
Всё оказалось действительно очень просто.
Я уже давно заметила, что у меня мозг работает в автономном режиме, то есть он что-то там "вычисляет" постоянно.
А потом выдаёт мне результаты :)
ID: 14527 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14528 - Posted: 5 Jun 2024, 4:08:23 UTC
Last modified: 5 Jun 2024, 4:10:28 UTC

Господа!
Кто хочет попробовать?
Раздаю части бесплатно :)
Возьмите хотя бы одну часть.
Работать будет долго (одна часть), так что никаких хлопот с программой, запустил и забыл!

Желательно наличие Windows 64-bit.

А BOINC-проект можно запускать прямо сейчас.
Много-много тысяч вушек запросто организуем :)
И не только для центральной 13-ки, важнее это сделать для ключевой 17-ки.
ID: 14528 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14529 - Posted: 5 Jun 2024, 4:53:13 UTC
Last modified: 5 Jun 2024, 7:02:40 UTC

Это вторая, запущенная мной сейчас, часть выдала приближения

break[5]> \r 13porc_61_valids_test1_gris.txt
   logfile = "13porc_61_valids_test1_gris_res.txt"
0 from number
0 to В  number
[0,12,42,60,66,90,96,102,126,132,150,180,192]
patterns length 13
117288381359406970983270 period
search in 0 (0.E-19) - 117288381359406970983270 (1.2 E23)
central 3: [90,96,102]
prove by 61#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
6695025219993600 formulae expected
9971025156794972194321: [0, 12, 42, 48, 66, 90, 96, 102, 126, 132, 148, 150, 192]
valids=10
number form=23322634

21899664339129875652751: [0, 12, 40, 46, 52, 88, 96, 102, 126, 132, 150, 180, 192]
valids=9
number form=32303466
. . . . . . . .

Последняя добавочка, давшая приближение, 32303466-я.

Тэк-с, у меня для ключевых 17-к в нулевом периоде работает один поток; генерируются добавки и проверяются на Norm-числа.
Сейчас проверю все полученные Norm-числа и остановлю эту программу.
Надо тоже сделать по частям.
Кстати, очень много чего в математике делается по частям :)
Это я уже очень давно заметила, ещё в проекте по ОДЛК.
ID: 14529 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14530 - Posted: 5 Jun 2024, 5:04:49 UTC
Last modified: 5 Jun 2024, 5:32:20 UTC

Вот что дали Norm-числа для ключевой 17-ки при valids>9

(09:00) gp > \rappr.txt
   logfile = "appr_res.txt"
5723776147291540020102247: [0, 6, 36, 64, 66, 70, 90, 100, 120, 126, 142, 156, 174, 190, 210, 234, 240]
5723776147291540020102247: [0, 0, 12, 28, 0, -14, 0, -14, 0, 0, -8, 0, 0, -14, -6, 0, 0]
5723776147291540020102247: [1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1]
valids=10
code=19161

5211220358505421302522307: [0, 6, 24, 36, 66, 76, 90, 120, 126, 142, 156, 172, 174, 214, 216, 234, 240]
5211220358505421302522307: [0, 0, 0, 0, 0, -8, 0, 6, 6, 16, 6, 16, 0, 10, 0, 0, 0]
5211220358505421302522307: [1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1]
valids=10
code=31243

1994651675294780875062517: [0, 10, 24, 36, 70, 84, 90, 102, 114, 126, 154, 156, 174, 192, 214, 234, 240]
1994651675294780875062517: [0, 4, 0, 0, 4, 0, 0, -12, -6, 0, 4, 0, 0, -12, -2, 0, 0]
1994651675294780875062517: [1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1]
valids=10
code=13913

6521044376753879260958497: [0, 6, 16, 22, 84, 100, 102, 114, 120, 126, 150, 156, 172, 204, 216, 234, 240]
6521044376753879260958497: [0, 0, -8, -14, 18, 16, 12, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0]
6521044376753879260958497: [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1]
valids=11
code=16887

1957723692650506238467837: [0, 6, 16, 24, 66, 84, 90, 100, 120, 126, 142, 156, 172, 174, 210, 234, 240]
1957723692650506238467837: [0, 0, -8, -12, 0, 0, 0, -14, 0, 0, -8, 0, -2, -30, -6, 0, 0]
1957723692650506238467837: [1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1]
valids=10
code=20177

4970085592058849844101347: [0, 6, 24, 36, 46, 70, 112, 114, 120, 136, 142, 156, 174, 214, 216, 234, 240]
4970085592058849844101347: [0, 0, 0, 0, -20, -14, 22, 0, 0, 10, -8, 0, 0, 10, 0, 0, 0]
4970085592058849844101347: [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1]
valids=11
code=29083

3851201343041238198192007: [0, 22, 24, 34, 66, 90, 102, 106, 120, 126, 150, 156, 172, 174, 216, 234, 240]
3851201343041238198192007: [0, 16, 0, -2, 0, 6, 12, -8, 0, 0, 0, 0, -2, -30, 0, 0, 0]
3851201343041238198192007: [1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1]
valids=10
code=10483

time = 843 ms.

Ну, плохонькие приближения, самые лучшие с 6 "дырками".

Остановила эту программу.

Напомню: эта программа работала в нулевом периоде (для периода 67#) и искала ключевые 17-ки в интервале
(12*10^23, 7858321551080267055879090).

Немножко отступила от последней известной ключевой 17-ки, найденной г. Петуховым
901985248981556228168767: 0 6 24 36 66 84 90 114 120 126 150 156 174 204 216 234 240

Конец интервала - это конец нулевого периода (для периода 67#).
Интервал охватывает большую область 25-значных чисел.
О ключевых 17-х в этой области я не видела сообщений.

Сейчас я эту программу модифицирую, сделаю из неё одну часть, причём не первую часть, а десятую, например.
ID: 14530 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14531 - Posted: 5 Jun 2024, 6:00:24 UTC
Last modified: 5 Jun 2024, 6:10:20 UTC

Готово!

Сначала вывела это

67 50 [2,3,4,5,6,7,9,10,11,12,13,15,16,17,18,19,21,22,23,24,25,26,29,30,32,33,35,36,37,38,39,40,41,42,46,47,48,49,53,54,55,56,57,58,59,60,62,63,65,66]
1999660772229120000 formulae expected

По остаткам простого 67 генерация разделяется на 50 частей.
Хорошее разделение!

Я запустила программу по остатку 12.

break[2]> \r 17porc_67_valids_test_gris.txt
   logfile = "17porc_67_valids_test_gris_res.txt"
0 from number
0 to В  number
[0,6,24,36,66,84,90,114,120,126,150,156,174,204,216,234,240]
patterns length 17
7858321551080267055879090 period
search in 0 (0.E-19) - 7858321551080267055879090 (7.9 E24)
central 3: [114,120,126]
prove by 67#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67]
39993215444582400 formulae expected
5723776147291540020102247: [0, 6, 36, 64, 66, 70, 90, 100, 120, 126, 142, 156, 174, 190, 210, 234, 240]
valids=10
number form=2306688
. . . . . . 

С ходу выдалось приближение!

Да, количество формул (= количество добавок) уменьшилось в 50 раз!
Было
1999660772229120000 formulae expected

стало
39993215444582400 formulae expected

Да, надо запустить все 50 частей!
Да, каждая часть - это тысяча лет.
Но разделение можно продолжить!
И дальше только дело за техникой.

Если программу выполнить полностью, будут найдены все ключевые 17-ки в интервале
(12*10^23, 7858321551080267055879090).
Гарантированно!
ID: 14531 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13864
Credit: 0
RAC: 0
Message 14532 - Posted: 5 Jun 2024, 6:13:10 UTC
Last modified: 5 Jun 2024, 11:35:40 UTC

Сейчас запущу ещё одну часть для ключевых 17-к, для остатка 24.

Ахиллес вот завершит все проходы (7 потоков), запущу на нём 7 частей для ключевой 17-ки.

Запустила ещё часть для ключевой 17-ки (для остатка 24).

Ой, а удобно как: перезапускать эти программы не нужно!
На всю оставшуюся жизнь программы :)
И даже на после жизни, я умру, а программы будут работать :)

Тэк-с, ну а что там у нас с 19-й с минимальным диаметром?
Г. Петухов что-то совсем замолчал.
Обещал, что до 1Е25 будет несколько решений!
И где они?
Или до 1Е25 ещё не просчитал?
Ну, хотя бы одно решение уже должно быть.

Ядряра вот-вот научно предскажет, когда же появится 19-ка с минимальным диаметром.
Он уже до 15-ки с минимальным диаметром добрался.
Просчитал, оценил?
На очереди 17-ки с минимальным диаметром.
Их, увы, очень мало.
Для них, насколько помню, три паттерна существуют.
Со всеми паттернами Ярослав Врублевский решения нашёл.
Один из паттернов - это паттерн ключевой 17-ки.
На данный момент нам известны восемь ключевых 17-к.

Вот и ломаю голову: откуда же начинать искать 19-ку с минимальным диаметром???
Г. Петухов утверждает, что до 1Е24 её точно нет.
ID: 14532 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Previous · 1 · 2 · 3 · 4 · 5 · 6 . . . 11 · Next

Message boards : Cafe : Поиск КПППЧ в нулевом периоде


©2024 (C) Progger