2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 26, 27, 28, 29, 30, 31, 32 ... 54  След.

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


05/09/16
12130
fosnie в сообщении #1514598 писал(а):
А вот замена слешей на обратные слеши, кавычек на апострофы пока не помогли запустить ни одну программу из другой директории.

Да, я уже даже у себя установил. У меня работает. Но у меня путь латинский весь и без пробелов,
\r "C:\Users\wrest\Documents\myscripty1.gp"
Кириллица портится... Я бы кириллицу вообще бы не использовал, раз такое дело.
Текст макроса, у меня работает:
Код:
{print("Input number of counters");
cnt=vector(input());
for(i=1,1000,
   if(!issquarefree(i), next);
   cnt[omega(i)%#cnt+1]++;
   print1("mod0=", cnt[1]); for(k=1,#cnt-1, print1(", mod", k, "=", cnt[k+1]); ); print;
);}


Результат работы:
Код:
Reading GPRC: gprc.txt ...Done.

                                      GP/PARI CALCULATOR Version 2.11.3 (released)
                              amd64 running mingw (x86-64/GMP-6.1.2 kernel) 64-bit version
                                compiled: Feb 17 2020, gcc version 6.3.0 20170516 (GCC)
                                                threading engine: single
                                     (readline v8.0 enabled, extended help enabled)

                                         Copyright (C) 2000-2018 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?17 for how to get moral (and possibly technical) support.

parisize = 8000000, primelimit = 500000
(16:20) gp > \r "C:\Users\wrest\Documents\myscripty1.gp"
Input number of counters
5
mod0=1, mod1=0, mod2=0, mod3=0, mod4=0
mod0=1, mod1=1, mod2=0, mod3=0, mod4=0
mod0=1, mod1=2, mod2=0, mod3=0, mod4=0

и так далее, ещё много строк.

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


09/04/21

21
Dmitriy40 в сообщении #1514595 писал(а):
fosnie
Значит не кладите файлы в папки с русскими символами. Чтобы полный путь к файлу был только из латинских символов.


Да, спасибо, помогло, но тогда и в теле программы нельзя использовать кирилицу, иначе вот что при исполнении вылезает:
Цитата:
break[17]> \r C:\myscriptty2.txt
┬тхфшЄх ъюышўхёЄтю ёў╕Єўшъют:


-- 16.04.2021, 16:28 --

wrest в сообщении #1514599 писал(а):
Да, я уже даже у себя установил. У меня работает. Но у меня путь латинский весь и без пробелов,
\r "C:\Users\wrest\Documents\myscripty1.gp"
Кириллица портится... Я бы кириллицу вообще бы не использовал, раз такое дело.
Текст макроса, у меня работает:



Да, спасибо, после установки скобок по рекомендации Dmitriy40 и у меня все заработало, и в латинских директориях нормально все работает, только коверкает кириллицу при исполнении кода. И из папок, путь к которым содержит кириллицу, не запускается.

Рекомендации услышал. Всем еще раз большое спасибо.

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


05/09/16
12130
fosnie
Вряд ли вы решитесь, но вот я, у себя, установил pari в так называемые windows services for linux. Вот тот же файл, с кириллицей в тексте, (сохраненный из блокнота в UTF-8) и в том же месте.

(Оффтоп)

Код:
wrest@wrestpc:~$ gp
Reading GPRC: /etc/gprc ...Done.

                                      GP/PARI CALCULATOR Version 2.11.2 (released)
                              amd64 running linux (x86-64/GMP-6.1.2 kernel) 64-bit version
                            compiled: Jul 12 2019, gcc version 9.1.0 (Ubuntu 9.1.0-8ubuntu1)
                                               threading engine: pthread
                                     (readline v8.0 enabled, extended help enabled)

                                         Copyright (C) 2000-2018 The PARI Group

PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER.

Type ? for help, \q to quit.
Type ?17 for how to get moral (and possibly technical) support.

parisize = 8000000, primelimit = 500000, nbthreads = 8
? \r /mnt/c/Users/wrest/Documents/myscripty1.gp
Введите количество счетчиков
5
mod0=1, mod1=0, mod2=0, mod3=0, mod4=0
mod0=1, mod1=1, mod2=0, mod3=0, mod4=0
mod0=1, mod1=2, mod2=0, mod3=0, mod4=0
mod0=1, mod1=3, mod2=0, mod3=0, mod4=0

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


09/04/21

21

(Оффтоп)

wrest
я может и решился бы на это, но, насколько я понимаю, WSL можно поставить только на windows10, а у меня гораздо более ранняя версия )

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


21/05/16
4292
Аделаида
fosnie, можно установить Linux на виртуальную машину (к примеру, VirtualBox).

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


20/08/14
11872
Россия, Москва
Интересный глюк особенность в PARI/GP:
Код:
? n=1; print1(n); print1(n++); print1(n++); print(n);
1233
А должно быть:
Используется синтаксис C++
int n=1; std::cout << n << n++ << n++ << n << "\n";
1123

Соответственно неправильно работают конструкции типа v[n++]=1;.

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


05/09/16
12130
Dmitriy40
Из мануала
https://pari.math.u-bordeaux.fr/dochtml/html-stable/operators.html писал(а):
Beware that some GP operators differ slightly from their C counterparts. For instance, GP's postfix ++ returns the new value, like the prefix ++ of C,

...
Цитата:
++ and -- (unary, postfix): if x is an lvaluex++ assigns the value x+1 to x, then returns the new value of x. This corresponds to the C statement ++x: there is no prefix ++ operator in GP. x-- does the same with x-1. These operators are not associative, i.e. x++++ is invalid, since x++ is not an lvalue.

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


20/08/14
11872
Россия, Москва
Я и говорю, особенность. Гады, могли бы сделать и совместимо с С, ++n, а n++ запретить (как сейчас запрещён префикс), и проблем бы ни у кого не было. Или вообще инкремент/декремент не делать, раз он всегда и везде заменим на n±=1.

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


29/04/13
8318
Богородский
maxal в сообщении #255964 писал(а):
Вывод в файл включается командой \l - например:
Код:
? \l result.txt


Да, раньше(сколько-то лет назад) это работало. А сейчас, в другой версии(2-13-2) не получается. При этой команде появляется инфа:

log = 1(on)
[logfile is "result.txt"]

То есть вроде как всё в порядке, но файла этого я на компе не вижу...

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


20/08/14
11872
Россия, Москва
Он наверняка есть, только в текущем каталоге, а уж какой каталог текущий для запущенного непонятно как PARI - вопрос! Он может быть например C:\Windows\System32 как для всех консольных приложений или близко там.
Укажите полный путь к файлу лога (и для надёжности без пробелов и нелатинских символов) - там его и найдёте.

Или выполните команду
Код:
? system("cd")
C:\Temp
?
и узнайте текущий каталог.

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


29/04/13
8318
Богородский
Dmitriy40, спасибо.

Dmitriy40 в сообщении #1548687 писал(а):
Или выполните команду systen("cd") и узнайте текущий каталог.

Выполнил. Только не systen, а system.

Ответ:

C:\Program Files\Pari32-2-13-2

Только там в корне его нету. И в C:\Program Files\Pari32-2-13-1 тоже.

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


20/08/14
11872
Россия, Москва
Yadryara
А права на создание файлов и запись в той папке есть? Винда вообще говоря защищает эти папки от записи и изменений.
Попробуйте запускать PARI из другой папки, в которую точно можно писать файлы без ограничений.
Я специально попробовал создать новую папку ровно с указанным Вами именем в Program Files, ответил да на запрос системы о повышении прав, запустил оттуда PARI:
Код:
? \l abc.log
   log = 1 (on)
   [logfile is "abc.log"]
? system("cd")
C:\Program Files\Pari32-2-13-2
? \l
   log = 0 (off)
   [logfile was "abc.log"]
?
И в результате у меня папка тоже пуста.
НО! Если поискать по всему диску, то появилось аж 4 файла с тем же именем, одинаковым размером и датой:
Код:
C:\Documents and Settings\Admin\AppData\Local\VirtualStore\Program Files\Pari32-2-13-2\abc.log
C:\Documents and Settings\Admin\Local Settings\VirtualStore\Program Files\Pari32-2-13-2\abc.log
C:\Users\Admin\AppData\Local\VirtualStore\Program Files\Pari32-2-13-2\abc.log
C:\Users\Admin\Local Settings\VirtualStore\Program Files\Pari32-2-13-2\abc.log
Скорее всего Ваш файл тоже там (физически это один файл, но доступный из 4-х мест).

При запуске же из C:\Users\All Users\Documents файл в ней появляется. Вместо All Users можно и своё имя подставить (или Все пользователи для русской винды).
Текущую папку при работе программ можно указать в ярлыке если запускать через него, при этом сам exe может лежать где угодно.

Т.е. это проблема всё же в системе безопасности винды, чем PARI.

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


29/04/13
8318
Богородский
Dmitriy40, Большое Спасибо.

Да, когда я создал файл в Блокноте и попытался скопировать в тот самый PARI-шный каталог, то потребовалось повысить права до администратора. Но и переместить таким способом, и прочитать потом из PARI всё же получилось.

Дальше, видимо, сам разберусь.

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


20/08/14
11872
Россия, Москва
В PARI есть минимум три функции, позволяющие получить из числа его строковое представление, Str и strprintf и strexpand, но вот чтобы понять как выполнить обратное, из строки получить число, понадобилось пару часов носом рыть gp_users.pdf (потому что в gp_refcard.pdf желаемого тупо не обнаружил, а Int("123") не работает) и найти ну абсолютно не очевидную eval:
Код:
? s="1234599"
%1 = "1234599"
? eval(s)
%2 = 1234599
Может кому-то пригодится.

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


07/01/16
1612
Аязьма
Коллеги, подскажите, пожалуйста, есть ли в PARI способ быстрого определения перечня элементов вектора, не являющихся элементами другого вектора? Я пробовал два варианта: vecsearch в цикле и setminus, оба выглядят жутко долгими. На векторах натуральных чисел величиною меньше миллиона и размером около 10000 за полчаса (!) ни один из вариантов еще не отработал; при размере в 1000 отрабатывает примерно за минуту. Первый вариант исходно выругался на размер стека по умолчанию, выставил parisizemax = 512000000, parisize=32000000, и два окошечка PARI/GP надолго задумались...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 810 ]  На страницу Пред.  1 ... 26, 27, 28, 29, 30, 31, 32 ... 54  След.

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



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

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


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

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