2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 15, 16, 17, 18, 19, 20, 21 ... 54  След.

А вам пакет PARI/GP интересен?
Да 83%  83%  [ 58 ]
Нет 6%  6%  [ 4 ]
Не уверен(а) 11%  11%  [ 8 ]
Всего голосов : 70
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 15:35 
Заслуженный участник


20/08/14
11635
Россия, Москва
Soul Friend в сообщении #1329958 писал(а):
натуральные числа $n$ до заданного $x$. И надо чтобы вне зависимости от простоты числа $n$ выдавалось следующее за числом $n$ простое число.
nextprime(n+1) именно его и выдаст. Или приведите контрпример когда это не так.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 15:37 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Код:
nextprime(6)=7;
nextprime(7)=7;

А надо чтобы выдавало
Код:
nextprime(6)=7;
nextprime(7)=11;

Поэтому и надо вводить if().

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 15:40 
Заслуженный участник


20/08/14
11635
Россия, Москва
Soul Friend
А чему равно $n$ для этих строк кода? 5 и 6? Тогда выдача правильная. Таки запишите через $n$:
Код:
n=5;nextprime(n+1)
n=6;nextprime(n+1)
n=7;nextprime(n+1)
И только если найдёте ошибку - спорьте.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 15:41 


05/09/16
11954
Soul Friend в сообщении #1329961 писал(а):
А надо чтобы выдавало
Код:
nextprime(6)=7;
nextprime(7)=11;

Поэтому и надо вводить if().

Вот вам новая функция, называется SoulFriend_nextprime
Код:
? SoulFriend_nextprime(x)=nextprime(floor(x)+1);
? SoulFriend_nextprime(6)
%1 = 7
? SoulFriend_nextprime(7)
%2 = 11

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 16:00 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan

(Оффтоп)

Dmitriy40 в сообщении #1329962 писал(а):
И только если найдёте ошибку - спорьте.

Я не спорил, а недопонимал. Ошибался, не принял в расчёт что 2 тоже простое. Всё работает как часы на детонаторе.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 17:50 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan

(Оффтоп)

А в прочем, у меня было:
Код:
nextprime(f(x))

где $f(x)$ функция от х, и
Код:
Soul_friend=nextprime(n+1)

не прокатит, нужно проверять значение функции на простоту, отсюда и дополнительное условие if.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 18:00 


05/09/16
11954
Soul Friend в сообщении #1329986 писал(а):
не прокатит

У меня прокатывает:
Код:
? SoulFriend_nextprime(x)=nextprime(floor(x)+1);
? SoulFriend_function(x)=x^2;
? SoulFriend_function_of_function(x)=SoulFriend_function(x)+28;
? SoulFriend_nextprime(SoulFriend_function_of_function(5))
%1 = 59


-- 01.08.2018, 18:11 --

Soul Friend в сообщении #1329986 писал(а):
где $f(x)$ функция от х, и
Код:
Soul_friend=nextprime(n+1)

не прокатит

Вы кстати исказили код зачем-то. Я же писал по-другому:
Код:
? SoulFriend_nextprime(x)=nextprime(floor(x)+1)
Может вы и не видите разницы но цитируйте пож-ста точно. А лучше -- проверяйте сами "прокатит" или "не прокатит".

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 18:18 
Заслуженный участник


20/08/14
11635
Россия, Москва
Soul Friend
Как уже трижды сказал wrest очень даже прокатит и ничего проверять не надо:
Код:
nextprime(floor(f(x))+1)
К тому же Вы говорили что аргумент у вас натуральный, т.е. f(x) выдаёт только натуральные значения, а значит floor() и не нужен (хотя и особо не мешает).
Может Вы всё же будете сначала сами проверять свои примеры ... Или показывать точный код примера выдающего ошибку (а не "nextprime(7)=7") ...

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 18:40 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Dmitriy40
wrest
Да, вы абсолютно правы, это я не так объясняю. Есть две формулы, в зависимости от того простое число или нет применяется та или иная формула.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 18:43 
Заслуженный участник


20/08/14
11635
Россия, Москва
Soul Friend в сообщении #1330005 писал(а):
Есть две формулы, в зависимости от того простое число или нет применяется та или иная формула.
Код:
if(isprime(x),f1(y),f2(z))
Для больших чисел (больше скажем миллиарда лучше сразу $10^{19}$, до этого как оказалось они примерно равны по скорости) вместо isprime лучше использовать более быструю ispseudoprime (именно она используется внутри nextprime). До $10^{19}$ они гарантированно дают одинаковый результат. А для ещё сильно больших чисел isprime будет выполняться днями и годами минуты и часы, а ispseudoprime секунды. Видел даже где-то утверждение что вообще не известно ни одного примера ошибки ispseudoprime.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 18:44 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Dmitriy40
Вооо, вот это.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение01.08.2018, 19:04 


05/09/16
11954
Soul Friend в сообщении #1330007 писал(а):
Вооо, вот это.

А причем тут вообще было nextprime тогда? :facepalm:

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение02.08.2018, 23:06 


05/09/16
11954
Как можно сохранить пользовательскую функцию средствами самой pari/gp чтобы в следующей сессии загрузить?
Допустим имеется foo()=здесь много кода в одну строку
Как сохранить это foo() в какой-то файл и как потом загрузить его?

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение02.08.2018, 23:28 
Заслуженный участник


20/08/14
11635
Россия, Москва
Есть команда \r file, она прочитает файл как будто его весь ввели с клавиатуры.
И есть файл gprc.txt (правда не знаю куда его лучше положить, посмотрите в доке, раздел 2.14.2 The gprc location.), в котором можно задать начальные настройки при старте.
Ну или как совсем уж вариант, запускать PARI с параметром имени файла, который и будет выполнен. И если в нём нет долгих циклов и команды выхода, то PARI вернётся к терминальному режиму.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение02.08.2018, 23:30 


05/09/16
11954
Dmitriy40
Это как прочитать. А как сохранить?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 804 ]  На страницу Пред.  1 ... 15, 16, 17, 18, 19, 20, 21 ... 54  След.

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



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

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


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

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