2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:03 


20/02/20
83
Ну а прогрессии без пропусков берет PARI/GP или нет(на сегодняшний день самая большая длина равна 10)?

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:29 
Заслуженный участник
Аватара пользователя


13/08/08
14495
Это прогрессии из последовательных простых? А это, как мне кажется, ещё проще алгоритмически в PARI, если для баловства и в диапазоне триллиона. Есть функции nextprime или даже цикл forprime и можно выстраивать последовательность разностей соседних простых и вылавливать отрезки равных разностей. Если же забираться очень далеко, то там может быть хитро с алгоритмической и тяжело с вычислительной стороны.

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение13.12.2022, 11:53 


05/09/16
12108
genk в сообщении #1573636 писал(а):
Ну а прогрессии без пропусков берет PARI/GP или нет(на сегодняшний день самая большая длина равна 10)?

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

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение15.12.2022, 18:26 


20/02/20
83
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 


05/09/16
12108
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 
Заслуженный участник


20/08/14
11867
Россия, Москва
Разумеется PARI берёт не всё, есть ограничения и по памяти, и по скорости, и по используемым функциям, и по точности вычислений. Но берёт многое.

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение06.02.2023, 17:05 


20/02/20
83
Dmitriy40 в сообщении #1573973 писал(а):
Разумеется PARI берёт не всё, есть ограничения и по памяти, и по скорости, и по используемым функциям, и по точности вычислений. Но берёт многое.

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

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение06.02.2023, 17:32 
Заслуженный участник


20/08/14
11867
Россия, Москва
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 


20/02/20
83
Dmitriy40 :D Спасибо,все работает.

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение07.02.2023, 10:04 


20/02/20
83
Dmitriy40
Нашел и дробную часть:frac(x),ну и,конечно,x-floor(x).

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение07.02.2023, 11:57 
Заслуженный участник


20/08/14
11867
Россия, Москва
Да, странно что про frac() забыл. :-( Видимо никогда не пользовался.

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение08.02.2023, 11:04 


20/02/20
83
Dmitriy40
Не подскажите,как редактировать и сохранять программы в PARI? Раньше я много работал с GAP,там набираешь программу в Блокноте,ставишь расширение .g,сохраняешь в директории,а потом в GAP вызываешь командой Read.Здесь же после набора в Блокноте с расширением .txt,в какую бы папку ни сохранял,после вызова файла в PARI командой \r пишет,что такого файла нет.Может,неправильный синтаксис?

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


29/04/13
8307
Богородский
genk

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

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

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

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

 Профиль  
                  
 
 Re: Прогрессии из простых чисел
Сообщение08.02.2023, 14:27 
Заслуженный участник


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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group