2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:03 
Ну а прогрессии без пропусков берет PARI/GP или нет(на сегодняшний день самая большая длина равна 10)?

 
 
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:29 
Аватара пользователя
Это прогрессии из последовательных простых? А это, как мне кажется, ещё проще алгоритмически в PARI, если для баловства и в диапазоне триллиона. Есть функции nextprime или даже цикл forprime и можно выстраивать последовательность разностей соседних простых и вылавливать отрезки равных разностей. Если же забираться очень далеко, то там может быть хитро с алгоритмической и тяжело с вычислительной стороны.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:53 
genk в сообщении #1573636 писал(а):
Ну а прогрессии без пропусков берет PARI/GP или нет(на сегодняшний день самая большая длина равна 10)?

PARI/GP берёт всё!

 
 
 
 Re: Прогрессии из простых чисел
Сообщение15.12.2022, 18:26 
wrest в сообщении #1573643 писал(а):
PARI/GP берёт всё!

Я решил проверить на гипотезе Коллатца: в рекуррентной последовательности a_0=k\in\mathbb{N},a_n = \begin{cases}a_{n-1}/2, & \mbox{if } a_{n-1} \mbox{ is even} \\ 3a_{n-1}+1, & \mbox{if } a_{n-1} \mbox{ is odd } \end{cases} после конечного числа шагов всегда придем к 1 для любого k. Вот код для вычисления N(k)-количества шагов(длина пути)(взято из OEIS-A006577):
a(n)=if(n<0,0,s=n;c=0;while(s>1,s=if(s%2,3s+1,s/2);c++);c)
Для k=2^{100}+1 (больше числа атомов во Вселенной) PARI мгновенно выдал результат N(k)=643.Впечатляет.Я подумал,ведь есть великое множество подобных задач в теории чисел и в теории динамических систем(вспомним фракталы);нельзя ли на домашнем компе составить программу,чтобы выяснить когда PARI перестает "брать все"? С калькулятором меня познакомили совсем недавно(gris),и я еще слабо разбираюсь.Не знаю,может быть какой-нибудь цикл,который останавливает вычисления и сообщает,что достигнут такой-то предел.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение15.12.2022, 18:44 
genk в сообщении #1573968 писал(а):
Для $k=2^{100}+1$ (больше числа атомов во Вселенной)

Ну само по себе число не такое уж и большое :mrgreen: его десятичная запись такая $2^{100}+1=1267650600228229401496703205377$
Насчет атомов во Вселенной вы ошиблись конечно. Это число меньше, чем масса Солнца в килограммах.

-- 15.12.2022, 18:45 --

genk в сообщении #1573968 писал(а):
.Не знаю,может быть какой-нибудь цикл,который останавливает вычисления и сообщает,что достигнут такой-то предел.

Конечно, может. Вот число $2^{100000}+1$ у меня на планшете обсчитывалось целых 5 секунд!
Запустите для числа $2^{1000000}+1$, думаю минут на 10 будет вычислений.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение15.12.2022, 19:08 
Разумеется PARI берёт не всё, есть ограничения и по памяти, и по скорости, и по используемым функциям, и по точности вычислений. Но берёт многое.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение06.02.2023, 17:05 
Dmitriy40 в сообщении #1573973 писал(а):
Разумеется PARI берёт не всё, есть ограничения и по памяти, и по скорости, и по используемым функциям, и по точности вычислений. Но берёт многое.

Неужели в PARI/GP ограничения на такие нужные функции,как целая и дробная часть числа?Я искал их в списке функций,но так и не нашел(или плохо искал).

 
 
 
 Re: Прогрессии из простых чисел
Сообщение06.02.2023, 17:32 
genk
Есть floor(), ceil(), round(), \, %.
Выделение дробной части не помню, кажется и нет. Но можно схитрить:
Код:
? 115.89%1
0.88999999999999999999999999999999999989
;-)

Насчёт потери точности:
Код:
? \p
   realprecision = 38 significant digits
? floor(1e90+1.3)
  ***   at top-level: floor(1e90+1.3)
  ***                 ^---------------
  *** floor: precision too low in truncr (precision loss in truncation).
Точности представления числа 1e90+1.3 с 38-ю значащими цифрами не хватило для правильного округления до целого. Это проблема не столько PARI/GP, сколько формата представления чисел с плавающей точкой ограниченной точности. В целых числах PARI/GP умеет работать с неограниченной точностью (пока памяти хватит, но сотни миллионов знаков вполне). Точность чисел с плавающей точкой тоже можно задрать в тысячи и более знаков, но это сильно тормозит почти любые вычисления (кроме самых примитивных).

 
 
 
 Re: Прогрессии из простых чисел
Сообщение07.02.2023, 08:41 
Dmitriy40 :D Спасибо,все работает.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение07.02.2023, 10:04 
Dmitriy40
Нашел и дробную часть:frac(x),ну и,конечно,x-floor(x).

 
 
 
 Re: Прогрессии из простых чисел
Сообщение07.02.2023, 11:57 
Да, странно что про frac() забыл. :-( Видимо никогда не пользовался.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение08.02.2023, 11:04 
Dmitriy40
Не подскажите,как редактировать и сохранять программы в PARI? Раньше я много работал с GAP,там набираешь программу в Блокноте,ставишь расширение .g,сохраняешь в директории,а потом в GAP вызываешь командой Read.Здесь же после набора в Блокноте с расширением .txt,в какую бы папку ни сохранял,после вызова файла в PARI командой \r пишет,что такого файла нет.Может,неправильный синтаксис?

 
 
 
 Re: Прогрессии из простых чисел
Сообщение08.02.2023, 11:23 
Аватара пользователя
genk

Во-первых есть специальная тема:

«интерактивный курс: введение в программирование на PARI/GP»

А во-вторых да, замените расширение. У меня работает .gp

Мне больше нравится запускать из консоли.

 
 
 
 Re: Прогрессии из простых чисел
Сообщение08.02.2023, 14:27 
genk
Расширение ни на что не влияет. Только если из блокнота, то надо сохранять в кодировке ANSI (выбор кодировки есть в пункте меню Файл - Сохранить как).
В команде \r указывайте полный путь к файлу, или сохраняйте файл в ту папку, что является текущей при работе PARI (посмотреть её можно командой system("cd") в PARI).
Подробнее было в указанной теме, предлагаю вопросы по PARI задавать там (и вообще просмотреть её, на многое уже отвечено).

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


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