2014 dxdy logo

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

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




На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 215  След.
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 17:20 
Аватара пользователя
Dmitriy40 в сообщении #1549768 писал(а):
Обнаружил цепочку с 14-ю из 15-ти чисел:
176394399749303520412335701680709124287641: 12, 12, 12, 96, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, valids=14

Так это, видимо, мировой рекорд. Поздравляю.

Dmitriy40 в сообщении #1549768 писал(а):
Переделал (всего за час): https://dropmefiles.com/p8JYV

Всё равно не работает. А может и работает, только непонятно где. Окно появляется на сотые доли секунды и тут же исчезает.

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 17:31 
Yadryara в сообщении #1549771 писал(а):
Всё равно не работает. А может и работает, только непонятно где. Окно появляется на сотые доли секунды и тут же исчезает.
Так запускайте из окна консоли (командная строка). Или из запущенного PARI.
Вот например выдача при запуске в консоли:
Используется синтаксис Text
T:\>Yadryara.exe 1000000000000000 1000000
[0x38D7EA4C6B319,0x38D7EA4C7198B,0x38D7EA4C74265,0x38D7EA4C9F399,0x38D7EA4CA4E83,0x38D7EA4CA5B5B,0x38D7EA4CA6191,0x38D7EA4CB9C6D,0x38D7EA4CCD245,0x38D7EA4CF5B47,0x38D7EA4D014E7,0x38D7EA4D0AF49,0x38D7EA4D56735]

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 18:03 
Аватара пользователя
Из окна консоли запускается, появляется левая квадратная скобка, после чего "Прекращена работа программы".

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 18:28 
Yadryara
Скажите свой процессор? Неужели он и SSE4.1 не поддерживает?!

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 18:55 
Аватара пользователя
В свойствах написано:

AMD Sempron(tm) 145 Processor 2.80 GHz

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 19:59 
Мда, в нём только SSE3. Буду думать во что обойдётся отказ от SSE4.1.

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 22:43 
Yadryara
Пробуйте: https://dropmefiles.com/znGhI
Вроде должно работать, убрал всё что выше SSE3, мне проверить не на чем. Скорость даже чуточку увеличилась, на 1с (из 118с) — попутно оказалось я выполнял кое-что лишнее в основном цикле.

 
 
 
 Re: Пентадекатлон мечты
Сообщение02.03.2022, 22:52 
Dmitriy40 в сообщении #1549768 писал(а):
Обнаружил цепочку с 14-ю из 15-ти чисел:
176394399749303520412335701680709124287641: 12, 12, 12, 96, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, valids=14
Цель близка!

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 01:00 
Аватара пользователя
Dmitriy40, да заработало, но в точности слова кота Матроскина нынче употреблять воздержусь.

Что дальше делать посоветуете?

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 01:35 
Yadryara в сообщении #1549799 писал(а):
Что дальше делать посоветуете?
Тут Вам решать, я ж не знаю что Вы собирались с этой программой делать. Можно запустить и пусть считает, сутками и неделями (я ведь запускал максимум на несколько часов), можно поискать другой более выгодный паттерн и сделать программу под него, можно на этой понабирать статистики в разных диапазонах или с разным шагом (кратным базовому), можно ещё чего нибудь ...

VAL
Хотелось бы понять работает ли у Вас программа, та что под x64, из облака.

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 01:41 
Аватара пользователя
Dmitriy40 в сообщении #1549800 писал(а):
Можно запустить и пусть считает,

У меня пока запускалась одна ехешная программа, а надо ведь запустить ещё и gp-шную.

Пожалуйста, напишите прямо здесь, текстом, более понятную инструкцию, как они взаимодействуют, как запускать именно эту пару программ именно из PARI.

Чтобы результаты можно было в файле хранить, а не только на экране.

-- 03.03.2022, 02:08 --

Вот, например, такая выдача:
Код:
Yadryara.exe 1000000000000000 20000
[0x38D7EA4C6B319]


То есть найдено число $1000000000013081$, которое не делится на простые не больше чем $256$ ? Или другое ограничение нынче?

Хотя на $31$ это число делится.

Дальше-то что делать?

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 03:02 
Yadryara
Ну я же специально прикладывал .gp файл с PARI программой, где ясно видно что и как надо делать чтобы использовать прилагаемый .exe. И выдаёт она не найденное число, а найденный индекс блока (шага, модуля) — на что надо домножить шаг/модуль и добавить начальное число чтобы получить искомое число.
Скачиваете и .exe и .gp, кладёте их в одну папку, заходите туда из консоли (команда в консоли cd /d путь_к_папке), набираете gp32.exe -q Yadryara.gp и получаете в консоли тот вывод что я уже показывал и даже записал в конец .gp файла:
Код:
T:\>gp32 -q Yadryara.gp
Mod(438957010505237256671215545, 440538835723387181869888800)
1710000000000000000000000000000000000000 - start
1730000000000000000000000000000000000000 - stop
1712084152981999171831531924917603912345: 12, 12,  6, 12, 12, 24, 12, 12, 12, 24, 12, 12, 12, 12, 24,  len=11
1718475518460662821245608915647563585945: 12, 12, 24, 48, 24, 12, 12, 12, 12, 24, 12, 12, 12, 12, 48,  len=10
1723647561535737193966646941181694393945: 12, 12, 24, 12, 12, 24, 12, 12, 48, 24, 12, 12, 12, 12, 24,  len=10
1728525439430677205335450306830937157145: 12, 12, 24,192, 12, 96, 12, 12, 12, 48, 12, 12, 12, 12, 12,  len=11
N=472842, 117.779s / 17.206s in PARI
После чего смотрите что я написал в этом .gp файле, правите его под свои нужды и снова запускаете из консоли.
Если хотите его запускать из уже работающего PARI, то удалите из .gp файла команду quit и всё после неё.
Вот вам .gp файл ещё раз:
Код:
start=17100*10^35;\\Откуда начать счёт
stop=start+200*10^35;\\Где остановиться, можно указать много-много (но до 8.1265*10^45) и будет считать годами

\\   n+0   n+1   n+2   n+3   n+4   n+5   n+6   n+7   n+8   n+9   n+10   n+11   n+12   n+13   n+14
v=[   45,   722,   841,   12,   49,   50,   507,   32,   961,   18,   605,   28,   867,   1058,   1369   ];
pp=Mod(0,1); for(i=1,#v, pp=chinese(pp,Mod(-i+1,v[i]))); print(pp);\\Печать чисто для информации
print(start," - start");\\Тоже для информации
print(stop," - stop ");\\Тоже
t0=getwalltime(); gettime(); q=0;\\А это лишь для статистики скорости/времени работы и количества выданных в PARI индексов на дальнейшую проверку

{forstep(ii=floor(start/pp.mod),ceil(stop/pp.mod),10^8,\\Цикл по всему нужному диапазону с большим шагом (внутри которого перебирать будет внешняя прога)
   printf("%0.2fe35%c",(lift(pp)+pp.mod*ii)/1e35,13);\\Вывод прогресса, можно убрать
   vi=extern(Strexpand("Yadryara.exe ",ii," ",10^8)); q+=#vi;\\Вызов с передачей параметров в виде начального значения индекса и сколько индексов перебрать
   if(#vi>0, foreach(vi,t,\\Если хоть что-то найдено, то цикл проверки всего что нашлось
      n=lift(pp)+pp.mod*t;\\Пересчитать индекс в число начала цепочки
      if(\\Перепроверка цепочки
         !ispseudoprime((n+0)/v[1]) || !ispseudoprime((n+1)/v[2]) ||
      \\!   !ispseudoprime((n+3)/v[4]) || !ispseudoprime((n+5)/v[6]) ||
         !ispseudoprime((n+6)/v[7]) || !ispseudoprime((n+7)/v[8]) ||
      \\!   !ispseudoprime((n+9)/v[10]) ||
         !ispseudoprime((n+10)/v[11]) || !ispseudoprime((n+11)/v[12]) ||
         !ispseudoprime((n+12)/v[13]) || !ispseudoprime((n+13)/v[14]) ||
         0 \\Добавлено исключительно для удобства комментирования строк выше, никакой роли при работе не играет
      ,
         next;\\Цепочка не подходит, пропустим и переход к проверке следующей
      );
      s=vector(15,d,numdiv(n+d-1)); k=#select(x->(x==12),s);\\Точный подсчёт количества делителей и сколько из них равны 12
      if(k>=1, printf("%d:",n); foreach(s,d, printf("%3d,",d)); print("  len=",k); );\\Если их достаточно много (я себе ставлю порог 10-11), то вывести найденное
      if(k==15, print("FOUND!!!"));\\Оптимистично
   ));
)}
printf("N=%d, %0.3fs / %0.3fs in PARI\t\t\t\n",q,(getwalltime()-t0)/1e3,gettime()/1e3);\\Вывод статистики работы
quit;
Что в нём непонятно то? В нём немало лишнего, но вроде ничего сложного или сверх хитрого нет. Добавил кучку комментариев. С ними работу не проверял, писал по живому прямо на форуме. ;-)
При записи вывода в файл стоит убрать вывод прогресса командой printf сразу после начала цикла.

Текущая версия программы находит индекс, при котором все 11 чисел в паттерне точно не делятся на простые до 3584 (причины такого выбора уже объяснял). Остальные 4 числа в паттерне не делятся на простые до 40.
Например найденный Вами 0x38D7EA4C6B319=1000000000013081 означает что число начала цепочки равно $438957010505237256671215545 + 440538835723387181869888800 \times 1000000000013081=$$440538835729150309336996932963296686608345$ и её надо проверить подробнее на делители. Те два числа для вычисления сидят в pp=Mod(438957010505237256671215545, 440538835723387181869888800), которое тоже выводится в консоль при старте .gp файла и получается прямо из паттерна в массиве v[].

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 07:22 
Аватара пользователя
Dmitriy40, Спасибо, вот теперь дело пошло лучше.

Dmitriy40 в сообщении #1549802 писал(а):
И выдаёт она не найденное число, а найденный индекс блока (шага, модуля)

Индекс — хорошee слово. У меня в проге был ind.

Dmitriy40 в сообщении #1549802 писал(а):
Скачиваете и .exe и .gp, кладёте их в одну папку, заходите туда из консоли (команда в консоли cd /d путь_к_папке), набираете gp32.exe -q Yadryara.gp и получаете в консоли тот вывод что я уже показывал и даже записал в конец .gp файла:

Не просто в одну папку надо класть, а именно в ту, где стоит PARI. Да и gp.exe вместо gp32.exe.

Когда я догадался всё это проделать, вывод на экран таки заработал и был таким, как Вы сказали. Проигрыш по времени почти двукратный, большое время около 230s, малое — 26s. Но я думал, что будет хуже.

Dmitriy40 в сообщении #1549802 писал(а):
После чего смотрите что я написал в этом .gp файле, правите его под свои нужды и снова запускаете из консоли.

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

Пока не получается добиться записи в файл, но я ещё не все варианты перепробовал.

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 11:38 
Dmitriy40 в сообщении #1549800 писал(а):
VAL
Хотелось бы понять работает ли у Вас программа, та что под x64
, из облака.
Не пытался запустить. Не до того было.

 
 
 
 Re: Пентадекатлон мечты
Сообщение03.03.2022, 13:13 
Yadryara в сообщении #1549805 писал(а):
Теперь тот же вопрос к Вам. Какой диапазон для этого паттерна уже проверен и какие находки обнаружены?
Ну, проверен очевидно диапазон с нуля до указанного в .gp файле (17e38), иначе как бы нашёл этот кусочек с 4-мя цепочками. С большой вероятностью он проверен до 20e38. Дальше — не помню, не обратил внимания, я надолго не запускал, лишь убедиться что работает и найти более-менее "красивый" не слишком большой кусочек (на пару минут счёта) диапазона для примера. Ну так Вам его весь перепроверить хватит нескольких часов.
Впрочем сейчас ещё раз запустил с нуля на несколько часов, посмотрим что интересного найдёт. Первая находка:
42179144918437100779636207822612944345: 12, 12, 24, 24, 12, 12, 12, 12, 12, 24, 12, 12, 12, 12, 96, len=11

Yadryara в сообщении #1549805 писал(а):
Не просто в одну папку надо класть, а именно в ту, где стоит PARI. Да и gp.exe вместо gp32.exe.
Не совсем: у меня gp32.exe и gp64.exe лежат в папке доступной по пути (переменная окружения path), потому могу их запускать из любого места. И переименовал их специально как себе удобнее. Даже мой .exe не обязательно класть в папку где .gp, можно вместо этого указать в самом .gp полный (или относительный) путь к моему .exe (только кажется с прямым слешем вместо обратного), но мне это неудобно из-за кучи разных вариантов и удобнее когда каждая версия вместе в одной папке. Или можно мой .exe положить в папку доступную по пути (переменная окружения path) и тогда можно будет вызывать откуда угодно. Вариантов много и к PARI отношения не имеет, это область ответственности ОС (винды).

Yadryara в сообщении #1549805 писал(а):
Пока не получается добиться записи в файл, но я ещё не все варианты перепробовал.
Можно включить запись лога командой \l. Можно заменить в нужных местах (например статистику оставить на экран) printf на write/write1 с указанием в какой файл писать. Можно запускать из консоли с перенаправлением вывода в файл >file. Все эти варианты прекрасно работают. Может и ещё какой есть ...

VAL
Вполне понимаю, без претензий. Сам почти неделю не могу собрать мысли в кучку хоть на полдня и переписать программу ради 3х кратного ускорения хотя чётко представляю что и как надо сделать, странно ещё что под x32 так легко получилось переделать (просто пары часов хватило и поправить и протестировать, на столько отвлечься иногда ещё получается).

 
 
 [ Сообщений: 3218 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 215  След.


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