2014 dxdy logo

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

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




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

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


05/09/16
11976
Dmitriy40
То что надо, спасибо!

Справился тут собрать pari/gp из исходных кодов (с помощью зала, ессно) на планшете с андроидом (внутри termux-а - это типа терминала с командной строкой), работает даже быстрее чем приложение PariDroid из Google PlayMarket-а, ну и таймер теперь работает.

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


20/08/14
11640
Россия, Москва
wrest
Для таймера ещё есть параметр default(timer,1) (текущее состояние показывается по команде \d), тогда если время выполнения было ненулевым (точнее более тика таймера ОС, 16мс для винды), то после выполнения команды всегда автоматом добавляется строка time = 1,076 ms. (цифра будет другой конечно). Бывает удобно. Правда у меня иногда почему-то не работало, не знаю уж почему. Пример:
Код:
? default(timer,1)
? forprime(i=1,10^7,b=i^2)
time = 1,076 ms.
?

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


05/09/16
11976
Dmitriy40 в сообщении #1329857 писал(а):
после выполнения команды всегда автоматом добавляется строка time = 1,076 ms. (цифра будет другой конечно). Бывает удобно. Правда у меня иногда почему-то не работало, не знаю уж почему

Да, у меня в PariDroid это тоже не работало, никогда. И prompt не менялся на "временной".
Теперь работает.

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


12/10/16
637
Almaty, Kazakhstan
есть ли функция которая находит простые числа между заданными, двумя, числами $(n-1)^2$ и $n^2$ , (primes between)?
И надо найденные простые в отрезке $n$ записать группой в векторе.
Что-то вроде:
Код:
a=addprimes(primes((n-1)^2));
b=addprimes(primes(n^2));
c_n=removeprimes(a in b)

(Не знаю как из элементов вектора $b$ удалить элементы вектора $a$, записав остатки в $c$.)
Сделать от двух до заданного $n$.
Или лучше через nextprime реализовать?

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


05/09/16
11976
Soul Friend
Код:
forprime(p = a, {b}, seq)

Evaluates seq, where the formal variable p ranges over the prime numbers between the real numbers a to b, including a and b if they are prime. More precisely, the value of p is incremented to nextprime(p + 1), the smallest prime strictly larger than p, at the end of each iteration. Nothing is done if a > b.

Код:
  ? forprime(p = 4, 10, print(p))
  5
  7


-- 01.08.2018, 10:08 --

Soul Friend в сообщении #1329912 писал(а):
И надо найденные простые в отрезке $n$ записать группой в векторе.

Код:
? v=[];n=20;forprime(p=(n-1)^2,n^2,v=concat(v,p));print(#v," primes found: ",v)
6 primes found: [367, 373, 379, 383, 389, 397]
Для $n=20$, простые числа между $(n-1)^2$ и $n^2$ помещаются в вектор v
На планшете для $n=10^5$ считает 8 секунд, находит 8651 простых чисел.

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


12/10/16
637
Almaty, Kazakhstan
wrest
Спасибо.

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


20/08/14
11640
Россия, Москва
Soul Friend в сообщении #1329912 писал(а):
(Не знаю как из элементов вектора $b$ удалить элементы вектора $a$, записав остатки в $c$.)
Тоже не знал, но вот нашёл:
Код:
? ?setminus
setminus(x,y): set of elements of x not belonging to y.
? setminus([1,2,3,4,5,6,7,8,9],[2,3,5,7])
%1 = [1, 4, 6, 8, 9]
А setintersect(x,y) выдаст наоборот общую часть.

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


12/10/16
637
Almaty, Kazakhstan
Dmitriy40
Спасибо, конспектирую со свёртыванием ).
1)А есть короткая запись этого?
Код:
concat(setminus(x,y), setminus(y,x))

2) Функция nextprime(x) показывает следующее простое число если само число $x$ составное, а если $x$ простое, то возвращает само число $x$.
А надо чтобы в любом случае показывала следующее простое число:
$$nextprime(7)=11$$
Как это сделать?
Ещё не разобрался в pari/gp reference card.

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


05/09/16
11976
Soul Friend в сообщении #1329943 писал(а):
А надо чтобы в любом случае показывала следующее простое число:
$$nextprime(7)=11$$
Как это сделать?

Очевидно, если аргумент целый, то прибавить единицу к нему, так: nextprime(7+1)
Если аргумент не целый, то взять целую часть и прибавить единицу к ней: nextprime(floor(n)+1)

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


20/08/14
11640
Россия, Москва
Soul Friend в сообщении #1329943 писал(а):
1)А есть короткая запись этого?
Код:
concat(setminus(x,y), setminus(y,x))
Совсем кардинально короче не придумал, другой вариант если порядок в результате не важен:
Код:
setminus(setunion(x,y),setintersect(x,y))

Кстати обнаружил что все эти set* правильно работают лишь с отсортированными по возрастанию векторами и никак иначе. Беда.

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


05/09/16
11976
Dmitriy40 в сообщении #1329952 писал(а):
Кстати обнаружил что все эти set* правильно работают лишь с отсортированными по возрастанию векторами и никак иначе.

Да, там написано
Цитата:
In PARI, a set is a row vector whose entries are strictly increasing with respect to a (somewhat arbitrary) universal comparison function. To convert any object into a set (this is most useful for vectors, of course), use the function Set.

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


12/10/16
637
Almaty, Kazakhstan
wrest в сообщении #1329948 писал(а):
то прибавить единицу к нему

Тогда придётся добавлять условие проверки просоты числа.

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


20/08/14
11640
Россия, Москва
Soul Friend в сообщении #1329955 писал(а):
Тогда придётся добавлять условие проверки просоты числа.
Не нужно, n+1 будет или простым (как 2 и 3) или составным (чётным) и в обоих случаях nextprime(n+1) выдаст правильно простое число, большее n.

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


12/10/16
637
Almaty, Kazakhstan
Dmitriy40 в сообщении #1329957 писал(а):
выдаст правильно простое число, большее n.

nextprime я применяю внутри функций в котором записана формула, формула пробегает все натуральные числа $n$ до заданного $x$. И надо чтобы вне зависимости от простоты числа $n$ выдавалось следующее за числом $n$ простое число.

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


05/09/16
11976
Soul Friend в сообщении #1329955 писал(а):
Тогда придётся добавлять условие проверки просоты числа.


Код:
? n=6.99999;nextprime(floor(n)+1)
%1 = 7
n=7;nextprime(n+1)
%2 = 11
n=7;nextprime(floor(n)+1)
%3 = 11
n=7.00001;nextprime(floor(n)+1)
%4 = 11
? n=10.0001;nextprime(floor(n)+1)
%5 = 11


-- 01.08.2018, 15:32 --

Soul Friend в сообщении #1329958 писал(а):
И надо чтобы вне зависимости от простоты числа $n$ выдавалось следующее за числом $n$ простое число.

Прибавить единицу необходимо к целой части аргумента функции этой, хотите как вы тогда работать будет она.

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

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



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

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


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

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