2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3
 
 Re: PARI/GP и Теория Чисел
Сообщение29.07.2025, 18:58 
Dmitriy40 в сообщении #1695776 писал(а):
Кажется Вы перепутали глубину рекурсии и общее количество вызовов функции.

Ну наверное. Просто вызов функции всегда, кроме первого раза, делается из самой функции. Соответственно, сохраняется состояние вызвавшей функци, создаются новые экземпляры всей внутренности функции (всё что в my())и т.п.
Ну может я просто не понимаю...

-- 29.07.2025, 19:05 --

Dmitriy40 в сообщении #1695776 писал(а):
Этот метод (проверка по модулю, младших цифр) вообще довольно часто применим.

Конечно, более того и в issquare() эти проверки делаются по нескольким модулям (16 и 64 емнип)
Не, ну задним-то умом оно конечно очевидно, когда уже сделано и работает.
Но надевать кольца снаружи это прям огонь! Меня вот не осенило.
Саме мысль мне приходила, более того я был уверен что как-то отрезать минимум на порядок объем можно. Я пробовал и проверять по модулю, но уже почти составленную пирамиду (т.е. тратил время на строительство), и получил жалкие проценты ускорения. А тут - радикально, на два порядка!
Урок мне и ТСу (надеюсь) хороший.

-- 29.07.2025, 19:16 --

Dmitriy40 в сообщении #1695776 писал(а):
За 16ч посчитались все пирамиды по 29 включительно (по 14 колец, k_max=14). Новых решений не найдено!

Ну вот на этом месте пора перейти к поиску доказательства что решений больше и нет :)

 
 
 
 Re: PARI/GP и Теория Чисел
Сообщение29.07.2025, 19:54 
wrest в сообщении #1695784 писал(а):
Конечно, более того и в issquare() эти проверки делаются по нескольким модулям (16 и 64 емнип)
Забавно что на асме проверка по модулю 64 делается буквально одной командой - bt <маска_в_x64_регистре>,<младшие_64_бита_проверяемого_числа_в_x64_регистре>, потом сразу j(n)c next (jump) и привет. Под x32/x86 тоже работает, с маской 32 бита. Если нужен модуль больше 64 (но степень двойки чтобы команда деления с остатком не испортила всю малину), то можно маску хранить и в памяти, тогда она и модуль вплоть до $2^{64}$ битов могут быть (если памяти хватит!), но это лишний произвольный (что плохо, они отвратительно кэшируются) доступ к памяти.

 
 
 
 Re: PARI/GP и Теория Чисел
Сообщение29.07.2025, 20:57 
Аватара пользователя
Несмотря на большую загруженность посторонними делами в конце месяца, я читаю и стараюсь проникать в подробности. И тщательно разбираться в текстах программ. Даже по мелочам, типа gettime(). Спасибо. Кстати, закомментил проверку на квадратность и занимет она 8% времени (для размеров 9-17. Идею внешних колец начал было пробовать. Хотел даже предвычислять все толстые (до 8 слоёв) кольца анализируя посторонние цифры в концах квадратов. Например, для двойного получается [16, 41, 44, 49, 56, 61, 64, 69, 96], а начало определяется, хоть и неоднозначно из-за 6. А потом впихивать середину. Запутался. У меня для безнулёвок получилось только для 25 и 27. А нулёвки на 19 забросил. А ведь ещё и пирамидки с чётным количеством цифр. Очень это похоже на кортежи! Отличие в конечности перебора :-) .

 
 
 [ Сообщений: 33 ]  На страницу Пред.  1, 2, 3


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