Posts by Demis

1) Message boards : Cafe : ODLK1 Latin Squares (Message 12605)
Posted 26 Sep 2023 by Demis
Post:
Project broken again for thr better part of the weekend.

Yes.
There was a small problem.
Last night the problem was corrected.

The project is now running.
2) Message boards : Cafe : ODLK1 Latin Squares (Message 12392)
Posted 26 Aug 2023 by Demis
Post:
Hi, All,

I publish the official link to the message from Ice00

http://boinc-status.multi-pool.info/
3) Message boards : Cafe : ODLK1 Latin Squares (Message 12391)
Posted 26 Aug 2023 by Demis
Post:
Attention!
On the ODLK1 project, the system disk failed (M2 SSD type).

The other disk where the project data is located was not affected.
It will take some time to replace the disk and restore the system (need nearly one week).

Please don't be nervous.
The problem is clear.
The problem is being solved.

I am writing at the request of ice00.
4) Message boards : Cafe : К штурму 19-ки (Message 11796)
Posted 24 May 2023 by Demis
Post:
I cannot read this Cyrillic script - why doesn't Google Chrome translate it for me?

Just try this link:
https://boinc-progger-info.translate.goog/odlk/forum_thread.php?id=237&sort_style&start=720&_x_tr_sl=pt&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=wapp
https://boinc-progger-info.translate.goog/odlk/forum_thread.php?id=237&sort_style&start=720&_x_tr_sl=ru&_x_tr_tl=en&_x_tr_hl=ru&_x_tr_pto=en
5) Message boards : Science : PARI/GP и новый эксперимент (Message 11292)
Posted 14 Mar 2023 by Demis
Post:
Какой смысл мне что-то снова объяснять, показывать ссылки на Ваши просьбы по задаче, приводить текст из них, если мои посты все равно скрываются?
Откроете пост тогда, возможно, продолжим это обсуждение...

Пока суть да дело, цифирьки меняются:
нагенерировал с 06.03.2023 по "сейчас" - 66.366 pattern-all.txt (диаметр тот-же 756)
а оптимизированный код с 09.03.2023 по "сейчас" - 334.068 pattern-all-d756.txt
6) Message boards : Science : PARI/GP и новый эксперимент (Message 11283)
Posted 14 Mar 2023 by Demis
Post:
Я представил Вам решение задачи.
А по поводу "42дня + 3819 дней = 3861 день" https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11263
Просто ЕЩЕ раз просто напоминаю:
Оптимизированная программа работает более чем в 10 раз быстрее.
3861 / 10 = 386 дней один поток.

Например, представленный код
нагенерировал с 06.03.2023 по "сейчас" - 62.475 pattern-all.txt (диаметр тот-же 756)
а оптимизированный код с 09.03.2023 по "сейчас" - уже 301.478 pattern-all-d756.txt
Пропорцию в разнице можете посчитать сами.

Если на компьютере 8 ядер, то:
386 / 8 потоков = 48 дней на одном компьютере.
Т.е. 2 компа по 8 потоков посчитают за 24 дня, вполне разумный и подъемный срок.
Какие миллионы лет???
7) Message boards : Cafe : К штурму 19-ки (Message 11262)
Posted 11 Mar 2023 by Demis
Post:
Demis
как насчёт штурма? :)

У меня на такое художество нет ни времени, ни ресурсов.

Код как составить список паттернов был показан ранее.
Код как работать с составленным списком тоже.

Вас это не устроило.

Приведу пример, с медленного ноутбука, 10-ти летней давности для короткого диаметра 312.
Если с генерацией все просто, уходит от 2 до 10 секунд на одну строку паттерна (2 или 10 зависит от изменений в коде генератора по оптимизации).
То непосредственно сам расчет будет всегда медленнее.
Если только грис не оптимизирует свой код.

Вставив в код замер затрат по времени на время теста, получаю:
time before open file: pattern-all-d312-2.txt) is :15 ms
time after open file: pattern-all-d312-2.txt) is :31 ms
time after read one string data N: 1 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 12, 30, 42, 72, 90, 102, 132, 156, 180, 210, 222, 240, 270, 282, 300, 306, 312]
time work cycle N: 1 is :2min, 42,258 ms, Goto next row read cycle data...

time after read one string data N: 2 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 12, 30, 72, 90, 96, 102, 132, 156, 180, 210, 216, 222, 240, 282, 300, 306, 312]
time work cycle N: 2 is :3min, 54,300 ms, Goto next row read cycle data...

time after read one string data N: 3 (from file: pattern-all-d312-2.txt) is :1 ms
p=[0, 6, 12, 42, 60, 72, 90, 102, 132, 156, 180, 210, 222, 240, 252, 270, 300, 306, 312]
time work cycle N: 3 is :1min, 22,016 ms, Goto next row read cycle data...

time after read one string data N: 4 (from file: pattern-all-d312-2.txt) is :1 ms
p=[0, 6, 12, 42, 72, 90, 96, 102, 132, 156, 180, 210, 216, 222, 240, 270, 300, 306, 312]
time work cycle N: 4 is :3min, 50,868 ms, Goto next row read cycle data...

time after read one string data N: 5 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 12, 42, 72, 90, 102, 126, 132, 156, 180, 186, 210, 222, 240, 270, 300, 306, 312]
time work cycle N: 5 is :1min, 55,362 ms, Goto next row read cycle data...

time after read one string data N: 6 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 12, 60, 72, 90, 102, 126, 132, 156, 180, 186, 210, 222, 240, 252, 300, 306, 312]
time work cycle N: 6 is :1min, 17,147 ms, Goto next row read cycle data...

time after read one string data N: 7 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 30, 42, 60, 72, 96, 126, 132, 156, 180, 186, 216, 240, 252, 270, 282, 306, 312]
time work cycle N: 7 is :1min, 16,864 ms, Goto next row read cycle data...

time after read one string data N: 8 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 6, 30, 60, 72, 90, 96, 126, 132, 156, 180, 186, 216, 222, 240, 252, 282, 306, 312]
time work cycle N: 8 is :38,754 ms, Goto next row read cycle data...

time after read one string data N: 9 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 12, 30, 60, 90, 96, 102, 126, 132, 156, 180, 186, 210, 216, 222, 252, 282, 300, 312]
time work cycle N: 9 is :5min, 8,785 ms, Goto next row read cycle data...

time after read one string data N: 10 (from file: pattern-all-d312-2.txt) is :0 ms
p=[0, 30, 42, 60, 66, 72, 120, 126, 150, 156, 162, 186, 192, 240, 246, 252, 270, 282, 312]
time work cycle N: 10 is :1min, 16,697 ms, Goto next row read cycle data...

All Time work: 23min, 23,100 ms
понятно что время "time after open file" (время после открытия файла) = "31 ms" будет расти в зависимости от размера файла.
Однако время считывания строки "1 ms" изменяться практически не будет.

Учитывая, что время расчета существенно больше ("2min, 42,258 ms") - это не критично.
Впрочем об этом уже писалось ранее...

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

Но об этом никто, как правило, не помнит...

Вспомните, например, про 756 блок:
for tuple diameter=756 number of pretuples=7503945 after (%5,7,11) good:1833597
В автоматическом режиме генерации, если тратится 2 секунды на строку, потребуется:
1833597 * 2сек = 3667194 сек, или 3667194 / 60 / 60 / 24 = 42,44 суток.
Файл будет размером в несколько гигабайт.

А потом еще нужно сделать расчет, в среднем 3 минуты:
1833597 * 180сек = 330047460сек или 330047460 / 60 / 60 / 24 = 3819 дней.

Даже если составить программу таким образом, чтобы сгенерированное сразу считалось никуда не записывая (и не надо гигабайты хранить, о чем никто изначально не подумал), то все равно остается время на генерацию и потом расчет.
Таким образом при условии, что не будет сторонних факторов (в виде сбоя компьютера и т.п.), эти времена нужно суммировать.
Т.е. 42дня + 3819 дней = 3861 день.
Понимаете суть написанного?
И это не критика.

Но у Вас свой путь...
Не смею вмешиваться.
8) Message boards : Cafe : К штурму 19-ки (Message 11251)
Posted 11 Mar 2023 by Demis
Post:
Примерная статистика по наполненности паттернов:
for tuple diameter=360   number of pretuples=2543 after (%5,7,11) good:226
...
...
for tuple diameter=972   number of pretuples=54527964 after (%5,7,11) good:14552230
for tuple diameter=1056   number of pretuples=136861807 after (%5,7,11) good:38905195
Посчитал сегодня полную статистику в пределах первой тысячи:
for tuple diameter=276 number of pretuples=7 after (%5,7,11) good:0
for tuple diameter=288 number of pretuples=18 after (%5,7,11) good:0
for tuple diameter=300 number of pretuples=260 after (%5,7,11) good:11
for tuple diameter=312 number of pretuples=305 after (%5,7,11) good:10
for tuple diameter=324 number of pretuples=445 after (%5,7,11) good:27
for tuple diameter=336 number of pretuples=1570 after (%5,7,11) good:116
for tuple diameter=348 number of pretuples=342 after (%5,7,11) good:34
for tuple diameter=360 number of pretuples=2543 after (%5,7,11) good:226
for tuple diameter=372 number of pretuples=3638 after (%5,7,11) good:360
for tuple diameter=384 number of pretuples=2484 after (%5,7,11) good:190
for tuple diameter=396 number of pretuples=4312 after (%5,7,11) good:655
for tuple diameter=408 number of pretuples=2961 after (%5,7,11) good:621
for tuple diameter=420 number of pretuples=29579 after (%5,7,11) good:4302
for tuple diameter=432 number of pretuples=17985 after (%5,7,11) good:3549
for tuple diameter=444 number of pretuples=17281 after (%5,7,11) good:3401
for tuple diameter=456 number of pretuples=29252 after (%5,7,11) good:4435
for tuple diameter=468 number of pretuples=27452 after (%5,7,11) good:4272
for tuple diameter=480 number of pretuples=98019 after (%5,7,11) good:18700
for tuple diameter=492 number of pretuples=67494 after (%5,7,11) good:12798
for tuple diameter=504 number of pretuples=103675 after (%5,7,11) good:19624
for tuple diameter=516 number of pretuples=121738 after (%5,7,11) good:20625
for tuple diameter=528 number of pretuples=136693 after (%5,7,11) good:24300
for tuple diameter=540 number of pretuples=326599 after (%5,7,11) good:61067
for tuple diameter=552 number of pretuples=284912 after (%5,7,11) good:55180
for tuple diameter=564 number of pretuples=222397 after (%5,7,11) good:50565
for tuple diameter=576 number of pretuples=380000 after (%5,7,11) good:73998
for tuple diameter=588 number of pretuples=496087 after (%5,7,11) good:98872
for tuple diameter=600 number of pretuples=1060518 after (%5,7,11) good:227311
for tuple diameter=612 number of pretuples=702580 after (%5,7,11) good:145913
for tuple diameter=624 number of pretuples=611350 after (%5,7,11) good:135515
for tuple diameter=636 number of pretuples=968315 after (%5,7,11) good:202563
for tuple diameter=648 number of pretuples=958590 after (%5,7,11) good:198053
for tuple diameter=660 number of pretuples=3119054 after (%5,7,11) good:705132
for tuple diameter=672 number of pretuples=2676251 after (%5,7,11) good:615370
for tuple diameter=684 number of pretuples=2233796 after (%5,7,11) good:483349
for tuple diameter=696 number of pretuples=1768372 after (%5,7,11) good:457143
for tuple diameter=708 number of pretuples=2243099 after (%5,7,11) good:514174
for tuple diameter=720 number of pretuples=6403183 after (%5,7,11) good:1455012
for tuple diameter=732 number of pretuples=4511022 after (%5,7,11) good:1074343
for tuple diameter=744 number of pretuples=4698089 after (%5,7,11) good:1058599
for tuple diameter=756 number of pretuples=7503945 after (%5,7,11) good:1833597
for tuple diameter=768 number of pretuples=4196984 after (%5,7,11) good:1044080
for tuple diameter=780 number of pretuples=13616134 after (%5,7,11) good:3491411
for tuple diameter=792 number of pretuples=10197425 after (%5,7,11) good:2559623
for tuple diameter=804 number of pretuples=8415809 after (%5,7,11) good:1999905
for tuple diameter=816 number of pretuples=9152351 after (%5,7,11) good:2626749
for tuple diameter=828 number of pretuples=9303442 after (%5,7,11) good:2361304
for tuple diameter=840 number of pretuples=40008365 after (%5,7,11) good:10289762
for tuple diameter=852 number of pretuples=17059304 after (%5,7,11) good:4612534
for tuple diameter=864 number of pretuples=16330430 after (%5,7,11) good:4606165
for tuple diameter=876 number of pretuples=20718852 after (%5,7,11) good:5359783
for tuple diameter=888 number of pretuples=21206925 after (%5,7,11) good:5352510
for tuple diameter=900 number of pretuples=50643396 after (%5,7,11) good:13689263
for tuple diameter=912 number of pretuples=30694975 after (%5,7,11) good:8443329
for tuple diameter=924 number of pretuples=56202731 after (%5,7,11) good:15349179
for tuple diameter=936 number of pretuples=43311591 after (%5,7,11) good:11137615
for tuple diameter=948 number of pretuples=38660329 after (%5,7,11) good:9902080
for tuple diameter=960 number of pretuples=92529681 after (%5,7,11) good:24904241
for tuple diameter=972 number of pretuples=54527964 after (%5,7,11) good:14552230
for tuple diameter=984 number of pretuples=59766381 after (%5,7,11) good:16779239
for tuple diameter=996 number of pretuples=71114143 after (%5,7,11) good:18921126
9) Message boards : Cafe : К штурму 19-ки (Message 11240)
Posted 10 Mar 2023 by Demis
Post:
Примерная статистика по наполненности паттернов:
for tuple diameter=360   number of pretuples=2543 after (%5,7,11) good:226
for tuple diameter=468   number of pretuples=27452 after (%5,7,11) good:4272
for tuple diameter=480   number of pretuples=98019 after (%5,7,11) good:18700
for tuple diameter=492   number of pretuples=67494 after (%5,7,11) good:12798
for tuple diameter=504   number of pretuples=103675 after (%5,7,11) good:19624
for tuple diameter=636   number of pretuples=968315 after (%5,7,11) good:202563
for tuple diameter=756   number of pretuples=7503945 after (%5,7,11) good:1833597
for tuple diameter=768   number of pretuples=4196984 after (%5,7,11) good:1044080
for tuple diameter=828   number of pretuples=9303442 after (%5,7,11) good:2361304
for tuple diameter=972   number of pretuples=54527964 after (%5,7,11) good:14552230
for tuple diameter=1056   number of pretuples=136861807 after (%5,7,11) good:38905195
10) Message boards : Cafe : К штурму 19-ки (Message 11176)
Posted 4 Mar 2023 by Demis
Post:
gris
приготовиться! :)
К критике кода от Demis.

Кстати, замечу: Demis всегда говорил, что он не программист.
Однако, покритиковать код - всегда пожалуйста!
За многие годы сотрудничества я такой критики наслушалась.
Программы Алексея Белышева он тоже критиковал.
Белышев для меня вообще Бог!

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

Только и всего...

И в текущем случае - это НЕ критика.
Я и не собирался что-то там критиковать.

Gris посмотрит, подумает, скажет свое слово.
Мне-то вообще как-то без разницы, есть там ошибки или их нет.
11) Message boards : Cafe : К штурму 19-ки (Message 11166)
Posted 3 Mar 2023 by Demis
Post:
Опасения правильные.
Не смотря на то, что код работает, есть подводные камни у такого подхода.

В чем они заключаются?
Все переменные продублированы.
Инициализации переменных в коде нет.
Отсюда вытекает, что при некоторых условиях работы второго или иного последующего кода может возникнуть неприятность такого свойства: значение некоей переменной не присвоилось (в силу того, что его просто нет по результату вычисления), а проверка условия увидит предыдущее значение (т.к. оное не изменилось от предыдущего кода) и подставит его для расчета.
Получится кашка. Т.е. что-то скорее всего посчитается, но достоверность - под большим вопросом...
12) Message boards : Cafe : К штурму 19-ки (Message 11154)
Posted 2 Mar 2023 by Demis
Post:
А...
Я понял, все дело в терминах.

Есть просто информационное сообщение.
Оно выводится еще до того, как код основной задачи, что-то начал искать, считать, например:
print1("String N:",r,"\ta[1-2]=",a[1],",",a[2],", ...");
Или его старый вариант:
  print(a);

И от него ничего не зависит. Можно закоментировать, но на работу основной задачи это никак не повлияет.

А есть код, например:
      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();                                                                                                           
      for prime(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();                                      

Который нам выводит "что-то" найденное, т.е. именно результат обработки (основной работы программы по поиску "чего-то там").

Поэтому эта не точность сбила меня с толку "о какой обработке идет речь, если я ей вообще не занимался"...
Только и всего.

Подождем, что нароет "Ахиллес-3".
13) Message boards : Cafe : К штурму 19-ки (Message 11151)
Posted 2 Mar 2023 by Demis
Post:

А там написано, что корректировки касаются вывода процесса обработки, что мне совсем не нужно.
...
Это только засоряет экран, а мне надо видеть решения, если они появятся.

Странно.
Я не вижу текста про "обработки" в моем посте с корректировками.
А на счет засорения - абсолютно согласен, мне это тоже мешало (экран маленький, даже р не помещается), поэтому и укоротил.
Но это все в принципе не важно.
14) Message boards : Cafe : К штурму 19-ки (Message 11149)
Posted 2 Mar 2023 by Demis
Post:
Поэтому был взят "a" и еще укорочен до двух полей.

Не поняла; у меня шлёпается на экран весь вектор а.
Где это он укорочен?

Впрочем, разумеется, это не существенно, что шлёпать, но лучше шлёпать то, что короче и намного.
Изменю сама вывод, сделаю вывод вектора р.

Если правильно применены корректировки из поста https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11137#11137
То рисовать должно так:
C:\t3>1.bat
   log = 1 (on)
   [logfile is "d678_formulae_new-pat-1.txt"]
  ***   Warning: new stack size = 536870912 (512.000 Mbytes).
range of search
500228000001 (p=4852056529329699690 )
500228100000 (p=4852057499289000000 )
String N:1      a[1-2]=9901,18091, ...
String N:2      a[1-2]=9901,18091, ...
String N:3      a=[] is empty   Skiped.
String N:4      a[1-2]=9901,18091, ...
String N:5      a[1-2]=9901,18091, ...
String N:6      a[1-2]=9901,18091, ...

C:\t3>
И никакого полного a[ ] не наблюдаю.
15) Message boards : Cafe : К штурму 19-ки (Message 11145)
Posted 2 Mar 2023 by Demis
Post:
В сообщении: https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11125#11125
Был задан вопрос:
Не совсем понимаю нужно-ли менять значение "dm=420" в переменной для генерируемого файла.
имею ввиду строку:

filewrite(nf,"{period = 9699690; pl=19; dm=420; N=period; \\\\N=#19");

на значение diam.


Ответ не был получен.

Вопрос задавался потому, что переменная dm задается и дальше нигде, в программе, не используется.
По сути является просто информативным.
Какой в ней тогда технический смысл?

Пост, например, https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11132#11132
Водился три раза с описанием "из головы".
Но когда опять слетел, то в четвертый раз просто плюнул и вставил минимум...
И то, часть слов проглотило...

Мой пост, как показывает метка ("в ответ на Сообщение 11024").
Где четко задан вопрос, а значит является ответом на вопрос.
И так с большинством моих постов. Какой смысл писать масло маслянное?

\q - выход из программы после ее завершения.
Зачем я его сделал?
Чтобы пари гп закрылся после расчета сам.
Все, что насчиталось остается в текущем лог файле ("\l d432_formulae_new-2.txt;").
Это удобно, когда запущено много программ.
Также это удобно, когда запущена одна программа, но в цикле батника.
Поэтому необходимость применения этого ключа остается за пользователем, закомментировать не долго.

Какой вектор выводить на экран "p" или "a" не суть важно.
"p" - тоже длинный и довольно часто повторяется.
Поэтому был взят "a" и еще укорочен до двух полей.

Насчет "будет работать быстрее", ответ "1)". Однозначно.
Но есть некоторые моменты...
Первичное открытие файла занимает примерно 0,35 секунды.
Последующее считывание очередной строки примерно 0,05-0,1 секунды.

Учитывая, что сам расчет потом идет несколько десятков секунд, а иногда минут (и открытый файл при этом никак не участвует),
то эти 0,35 и 0,1 существенной роли на замедление никак не сыграют заметным образом...
Можно пренебречь.
16) Message boards : Cafe : К штурму 19-ки (Message 11137)
Posted 1 Mar 2023 by Demis
Post:
Если часть кода в файле pattern-1.gp :
  p=[]; eval(pat_row[r]); if(#p==0, next);
  a=[]; eval(pat_row[r]); if(#a==0, next);
  diam=eval(pat_row[r]); if(diam==0, next);
  \\diam=diam2;
  \\print(p);
  print(a);
  \\print(diam2);
  print("");

заменить на
  p=[]; eval(pat_row[r]); if(#p==0, next);
  a=[]; eval(pat_row[r]); if(#a==0, print1("String N:",r,"\ta=[] is empty\tSkiped.\n");next);
  diam=eval(pat_row[r]); if(diam==0, next);
  \\print(p);
  \\print(a);
  print1("String N:",r,"\ta[1-2]=",a[1],",",a[2],", ...");
  print("");
То вывод будет по информативнее, на какой строке файла pattern-all.txt идет расчет и какие строки пропущены из-за пустого "a=[ ]"...
17) Message boards : Cafe : К штурму 19-ки (Message 11136)
Posted 1 Mar 2023 by Demis
Post:
Мой последний пост отвечает на Ваши вопросы от "16 дек 2022, 07:50" из:
https://mathhelpplanet.com/viewtopic.php?p=455342#p455342
Каким именно способом подготовить файл pattern-all.txt особой роли не играет.
Например Ваш файл с я-диска "pat19_d444.txt" приводится к требуемому виду меньше чем за минуту.

А дальше остается только расчет с помощью показанного pattern-1.gp.

Но если это не то, что надо, то больше помочь не смогу.
Как и писал ранее "Так, наверное, впрочем не понятно..."
18) Message boards : Cafe : К штурму 19-ки (Message 11133)
Posted 1 Mar 2023 by Demis
Post:
Правильно читать так: "Пустой a[] в файле pattern-all.txt обработан не будет (строка пропустится)."

Принцип построения файла pattern-all.txt прост.
В одну строку должны быть параметры разделенные символом ";" из одного паттерна проверки.
Т.е.
p=[...,...,...]; a=[...,...,...]; diam=432;
19) Message boards : Cafe : К штурму 19-ки (Message 11132)
Posted 1 Mar 2023 by Demis
Post:
Можно поступить по другому, делаем файл pattern-1.gp,
\l d432_formulae_new-pat-1.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)}
{period = 9699690; pl=19; dm=420; N=period; \\N=#19
print("range of search");
i1=500228000001; print(i1," (p=", i1*9699690," )");
i2=500228100000; print(i2," (p=", i2*9699690," )");

pat_row=readstr(strprintf("pattern-all.txt"));

for(r=1,#pat_row,
  p=[]; eval(pat_row[r]); if(#p==0, next);
  a=[]; eval(pat_row[r]); if(#a==0, next);
  diam=eval(pat_row[r]); if(diam==0, next);
  \\diam=diam2;
  \\print(p);
  print(a);
  \\print(diam2);
  print("");

  lena=#a;

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();                                                                                                           
      for prime(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();                                      
    );                                                                                                                                                                  
  );                                                                                                                                                                    
);

);
}
\q


Делаем файл pattern-all.txt с содержимым:
p=[0, 6, 12, 30, 42, 66, 72, 90, 126, 216, 306, 342, 360, 366, 390, 402, 420, 426, 432]; a=[9901,18091,26561,84157,221717,250141,251467,258611,266801,293971,332867,394747,498851,500177,526021,528601,562057,617651,673207,691907,777311,804481,839191,857891,905257,913447,923957,969041,1044721,1136351,1145497,1201091,1202417,1237127,1264297,1368401,1423957,1442657,1479551,1504537,1513007,1541431,1615687,1719791,1746961,1753247,1781671,1782997,1790141,1847737,1864397,1995671,2015047,2030381,2031707,2057551,2060131,2096447,2126197,2263757,2292181,2308841,2336011,2366437,2374907,2436787,2455487,2540891,2568061,2576251,2615147,2642317,2677027,2732621,2733947,2808301,2899931,2919451,2955487,2965997,2974187,3011081,3086761,3187537,3206237,3243131,3251321,3278491,3317387,3379267,3483371,3484697,3510541,3527201,3546577,3627977,3657727,3759251,3761831,3789001,3795287,3823711,3889777,3897967,3906437,4029241,4037711,4072421,4099591,4130017,4138487,4146677,4173847,4277951,4339831,4378727,4405897,4408477,4450981,4497527,4618291,4657187,4683031,4684357,4719067,4737767,4774661,4848917,4850341,4924597,4961491,4980191,5014901,5016227,5042071,5080967,5201731,5248277,5290781,5293361,5320531,5359427,5421307,5525411,5552581,5560771,5569241,5599667,5626837,5661547,5670017,5792821,5801291,5809481,5875547,5903971,5910257,5937427,5940007,6041531,6071281,6152681,6172057,6188717,6214561,6215887,6319991,6381871,6420767,6447937,6456127,6493021,6511721,6612497,6688177,6725071,6733261,6743771,6779807,6799327,6890957,6965311,6966637,7022231,7056941,7084111,7123007,7131197,7158367,7243771,7262471,7324351,7332821,7363247,7390417,7407077,7435501,7573061,7602811,7639127,7641707,7667551,7668877,7684211,7703587,7834861,7851521,7909117,7916261,7917587,7946011,7952297,7979467,8083571,8157827,8186251,8194721,8219707,8256601,8275301,8330857,8434961,8462131,8496841,8498167,8553761,8562907,8654537,8730217,8775301,8785811,8794001,8841367,8860067,8894777,8921947,9007351,9026051,9081607,9137201,9170657,9173237,9199081,9200407,9304511,9366391,9405287,9432457,9440647,9447791,9449117,9477541,9615101,9672697,9681167,9689357]; diam=432;
p=[0, 6, 12, 30, 42, 66, 72, 90, 132, 216, 300, 342, 360, 366, 390, 402, 420, 426, 432]; a=[9901,18091,26561,84157,221717,250141,251467,258611,266801,293971,332867,394747,498851,500177,526021,528601,562057,617651,673207,691907,777311,804481,839191,857891,905257,913447,923957,969041,1044721,1136351,1145497,1201091,1202417,1237127,1264297,1368401,1423957,1442657,1479551,1504537,1513007,1541431,1615687,1719791,1746961,1753247,1781671,1782997,1790141,1847737,1864397,1995671,2015047,2030381,2031707,2057551,2060131,2096447,2126197,2263757,2292181,2308841,2336011,2366437,2374907,2436787,2455487,2540891,2568061,2576251,2615147,2642317,2677027,2732621,2733947,2808301,2899931,2919451,2955487,2965997,2974187,3011081,3086761,3187537,3206237,3243131,3251321,3278491,3317387,3379267,3483371,3484697,3510541,3527201,3546577,3627977,3657727,3759251,3761831,3789001,3795287,3823711,3889777,3897967,3906437,4029241,4037711,4072421,4099591,4130017,4138487,4146677,4173847,4277951,4339831,4378727,4405897,4408477,4450981,4497527,4618291,4657187,4683031,4684357,4719067,4737767,4774661,4848917,4850341,4924597,4961491,4980191,5014901,5016227,5042071,5080967,5201731,5248277,5290781,5293361,5320531,5359427,5421307,5525411,5552581,5560771,5569241,5599667,5626837,5661547,5670017,5792821,5801291,5809481,5875547,5903971,5910257,5937427,5940007,6041531,6071281,6152681,6172057,6188717,6214561,6215887,6319991,6381871,6420767,6447937,6456127,6493021,6511721,6612497,6688177,6725071,6733261,6743771,6779807,6799327,6890957,6965311,6966637,7022231,7056941,7084111,7123007,7131197,7158367,7243771,7262471,7324351,7332821,7363247,7390417,7407077,7435501,7573061,7602811,7639127,7641707,7667551,7668877,7684211,7703587,7834861,7851521,7909117,7916261,7917587,7946011,7952297,7979467,8083571,8157827,8186251,8194721,8219707,8256601,8275301,8330857,8434961,8462131,8496841,8498167,8553761,8562907,8654537,8730217,8775301,8785811,8794001,8841367,8860067,8894777,8921947,9007351,9026051,9081607,9137201,9170657,9173237,9199081,9200407,9304511,9366391,9405287,9432457,9440647,9447791,9449117,9477541,9615101,9672697,9681167,9689357]; diam=432;
p=[0, 6, 12, 30, 42, 66, 72, 90, 150, 216, 282, 342, 360, 366, 390, 402, 420, 426, 432]; a=[]; diam=432;
p=[0, 6, 12, 30, 42, 66, 72, 90, 156, 216, 276, 342, 360, 366, 390, 402, 420, 426, 432]; a=[9901,18091,26561,84157,221717,250141,251467,258611,266801,293971,332867,394747,498851,500177,526021,528601,562057,617651,673207,691907,777311,804481,839191,857891,905257,913447,923957,969041,1044721,1136351,1145497,1201091,1202417,1237127,1264297,1368401,1423957,1442657,1479551,1504537,1513007,1541431,1615687,1719791,1746961,1753247,1781671,1782997,1790141,1847737,1864397,1995671,2015047,2030381,2031707,2057551,2060131,2096447,2126197,2263757,2292181,2308841,2336011,2366437,2374907,2436787,2455487,2540891,2568061,2576251,2615147,2642317,2677027,2732621,2733947,2808301,2899931,2919451,2955487,2965997,2974187,3011081,3086761,3187537,3206237,3243131,3251321,3278491,3317387,3379267,3483371,3484697,3510541,3527201,3546577,3627977,3657727,3759251,3761831,3789001,3795287,3823711,3889777,3897967,3906437,4029241,4037711,4072421,4099591,4130017,4138487,4146677,4173847,4277951,4339831,4378727,4405897,4408477,4450981,4497527,4618291,4657187,4683031,4684357,4719067,4737767,4774661,4848917,4850341,4924597,4961491,4980191,5014901,5016227,5042071,5080967,5201731,5248277,5290781,5293361,5320531,5359427,5421307,5525411,5552581,5560771,5569241,5599667,5626837,5661547,5670017,5792821,5801291,5809481,5875547,5903971,5910257,5937427,5940007,6041531,6071281,6152681,6172057,6188717,6214561,6215887,6319991,6381871,6420767,6447937,6456127,6493021,6511721,6612497,6688177,6725071,6733261,6743771,6779807,6799327,6890957,6965311,6966637,7022231,7056941,7084111,7123007,7131197,7158367,7243771,7262471,7324351,7332821,7363247,7390417,7407077,7435501,7573061,7602811,7639127,7641707,7667551,7668877,7684211,7703587,7834861,7851521,7909117,7916261,7917587,7946011,7952297,7979467,8083571,8157827,8186251,8194721,8219707,8256601,8275301,8330857,8434961,8462131,8496841,8498167,8553761,8562907,8654537,8730217,8775301,8785811,8794001,8841367,8860067,8894777,8921947,9007351,9026051,9081607,9137201,9170657,9173237,9199081,9200407,9304511,9366391,9405287,9432457,9440647,9447791,9449117,9477541,9615101,9672697,9681167,9689357]; diam=432;
p=[0, 6, 12, 30, 42, 66, 72, 90, 192, 216, 240, 342, 360, 366, 390, 402, 420, 426, 432]; a=[9901,18091,26561,84157,221717,250141,251467,258611,266801,293971,332867,394747,498851,500177,526021,528601,562057,617651,673207,691907,777311,804481,839191,857891,905257,913447,923957,969041,1044721,1136351,1145497,1201091,1202417,1237127,1264297,1368401,1423957,1442657,1479551,1504537,1513007,1541431,1615687,1719791,1746961,1753247,1781671,1782997,1790141,1847737,1864397,1995671,2015047,2030381,2031707,2057551,2060131,2096447,2126197,2263757,2292181,2308841,2336011,2366437,2374907,2436787,2455487,2540891,2568061,2576251,2615147,2642317,2677027,2732621,2733947,2808301,2899931,2919451,2955487,2965997,2974187,3011081,3086761,3187537,3206237,3243131,3251321,3278491,3317387,3379267,3483371,3484697,3510541,3527201,3546577,3627977,3657727,3759251,3761831,3789001,3795287,3823711,3889777,3897967,3906437,4029241,4037711,4072421,4099591,4130017,4138487,4146677,4173847,4277951,4339831,4378727,4405897,4408477,4450981,4497527,4618291,4657187,4683031,4684357,4719067,4737767,4774661,4848917,4850341,4924597,4961491,4980191,5014901,5016227,5042071,5080967,5201731,5248277,5290781,5293361,5320531,5359427,5421307,5525411,5552581,5560771,5569241,5599667,5626837,5661547,5670017,5792821,5801291,5809481,5875547,5903971,5910257,5937427,5940007,6041531,6071281,6152681,6172057,6188717,6214561,6215887,6319991,6381871,6420767,6447937,6456127,6493021,6511721,6612497,6688177,6725071,6733261,6743771,6779807,6799327,6890957,6965311,6966637,7022231,7056941,7084111,7123007,7131197,7158367,7243771,7262471,7324351,7332821,7363247,7390417,7407077,7435501,7573061,7602811,7639127,7641707,7667551,7668877,7684211,7703587,7834861,7851521,7909117,7916261,7917587,7946011,7952297,7979467,8083571,8157827,8186251,8194721,8219707,8256601,8275301,8330857,8434961,8462131,8496841,8498167,8553761,8562907,8654537,8730217,8775301,8785811,8794001,8841367,8860067,8894777,8921947,9007351,9026051,9081607,9137201,9170657,9173237,9199081,9200407,9304511,9366391,9405287,9432457,9440647,9447791,9449117,9477541,9615101,9672697,9681167,9689357]; diam=432;
p=[0, 6, 12, 30, 42, 66, 72, 90, 210, 216, 222, 342, 360, 366, 390, 402, 420, 426, 432]; a=[9901,18091,251467,258611,266801,293971,394747,500177,528601,691907,777311,804481,857891,905257,913447,969041,1202417,1368401,1423957,1479551,1504537,1615687,1753247,1781671,1864397,2015047,2030381,2057551,2126197,2263757,2292181,2374907,2455487,2540891,2568061,2576251,2677027,2732621,2965997,2974187,3086761,3187537,3243131,3251321,3278491,3379267,3484697,3527201,3627977,3761831,3789001,3889777,3897967,4037711,4138487,4146677,4173847,4339831,4408477,4450981,4657187,4684357,4737767,4848917,4850341,4961491,5014901,5042071,5248277,5290781,5359427,5525411,5552581,5560771,5661547,5801291,5809481,5910257,5937427,6071281,6172057,6214561,6319991,6420767,6447937,6456127,6511721,6612497,6725071,6733261,6966637,7022231,7123007,7131197,7158367,7243771,7324351,7407077,7435501,7573061,7641707,7668877,7684211,7834861,7917587,7946011,8083571,8194721,8219707,8275301,8330857,8496841,8730217,8785811,8794001,8841367,8894777,8921947,9007351,9170657,9199081,9304511,9405287,9432457,9440647,9447791,9681167,9689357]; diam=432;


Если последний файл составить тяжело, делаем генератор для него :
\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;
nf = fileopen("./pattern-all.txt","a");
 
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 ("");
    filewrite1(nf,"p=");
    filewrite1(nf,p);
    filewrite1(nf,";");

    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();
    filewrite1(nf," a=[");
    filewrite1(nf,left(jj,length(jj)-1));
    filewrite1(nf,"];");
    filewrite1(nf," diam=");
    filewrite1(nf,diam);
    filewrite1(nf,";\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)
}
\q
Может как-то поможет.
Пустой a[] файле pattern-all.txt не будет.
Если \q мешает, комментируем.
20) Message boards : Cafe : К штурму 19-ки (Message 11128)
Posted 1 Mar 2023 by Demis
Post:
А в чем проблема-то?
Хочется длинным путем идти?
Пожалуйста:
\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)
}


Next 20


©2024 (C) Progger