2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 35, 36, 37, 38, 39, 40, 41 ... 54  След.

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


29/04/13
8307
Богородский
Я вот делаю биекцию. А как мне преобразовать строчный формат в числовой? Ну то есть, например, "2.7" в 14 ?

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


05/09/16
12112
Yadryara в сообщении #1573802 писал(а):
Ну то есть, например, "2.7" в 14 ?

А какой закон преобразования "2.7" в 14? Биекция подразумевает и обратное же, а как преобразовать 14 в "2.7"?

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


20/08/14
11867
Россия, Москва
Yadryara
Вот кусок кода что работал у меня в этом случае:
Код:
   for(t=1,11,
      if(s[t+1]==".", h[t]=1;next);\\Пустое место
      ss=strjoin(strsplit(s[t],"."),"*");
      h[t]=eval(ss);
   );
Т.е. замена точки на знак умножения, а потом тупо вычисление выражения.

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


05/09/16
12112
Dmitriy40 в сообщении #1573814 писал(а):
Т.е. замена точки на знак умножения, а потом тупо вычисление выражения.

а... так для этого есть линукс (у кого есть)

? a="2.3.5+20-1";print(eval(extern("echo '"a"'|sed 's/\\./*/g'")))
49
?

:mrgreen:
Но PARI конечно не для манипуляциий текстом сделан.

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


29/04/13
8307
Богородский
Dmitriy40, Благодарю.

wrest, ну обратное это очевидно факторизация 14 и т.д. Но мне пока нужно только в одну сторону.

Линукса нет.

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


05/09/16
12112
Yadryara
А откуда у вас берется такая странная строка, как "2.7"? Может, манипулировать лучше до того? Т.е. в том месте где эта строка пояляется или формируется?
Вобще точка запятая и звездочка (и некоторые другие) это трудные символы для манипуляций, в зависимости от ситуации могут требовать неочевидной записи escape-последовательностей и всего такого.

-- 14.12.2022, 18:12 --

Yadryara в сообщении #1573862 писал(а):
ну обратное это очевидно факторизация 14

И вы хотите получить множители как строку из чисел с разделителем-точкой? То есть из числа 14 обратно получить строку "2.7" Это было бы суперстранно, на мой взглляд. Хотя конечно конструировать строки легче, чем манипулировать.

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


29/04/13
8307
Богородский
wrest в сообщении #1573866 писал(а):
А откуда у вас берется такая странная строка, как "2.7"?

Это Hugo так придумал. Причём точка-то в данном случае на самом деле обозначает огромное простое в квадрате. См. «Пентадекатлон мечты»

Дмитрий прекрасно понял для чего мне это надо.

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


20/08/14
11867
Россия, Москва
wrest в сообщении #1573861 писал(а):
а... так для этого есть линукс (у кого есть)
Для этого много чего есть, например любой текстовый редактор (включая и FAR), но если уже есть PARI (а он точно есть), то зачем искать что-то ещё если можно сделать и на нём, пусть и не слишком хорошо, это ведь не понадобится миллиарды и триллионы раз.

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


05/09/16
12112
Dmitriy40 в сообщении #1573891 писал(а):
пусть и не слишком хорошо, это ведь не понадобится миллиарды и триллионы раз.

Поезд уже ушёл (Yadryara всё сделал как хотел и дебит сошёлся с кредитом), но я скажу так. Если бы мне надо было сделать однократную манипуляцию порядка 1000 строк структурированного текста типа заменить точки на звездочки, что-то ещё добавить/убавить, разделить на столбцы каким-то разделителем и т.п., то я бы точно это делал или в notepad или в экселе, просто потому что результат очевиден и виден глазу прямо немедленно.
А вот если надо в день по три раза импортировать такой текст в PARI для дальнейших вычислений, да ещё чтобы и кто-то другой это мог делать, вот тогда бы, возможно думал об обработке строк в PARI.

P.S.

(Оффтоп)

Ну и конечно возникший в этой теме Yadryara с вопросом "я делаю биекцию" хотя сделать надо было сверку двух списков строк, предварительно один из них манипулировав к формату второго, и иллюстрация Dmitriy40 с циклом почему-то от 1 до 11, с уже сущетвующими до цикла переменными и т.п. - всё это было немножко сюром. Особенно замечание " Причём точка-то в данном случае на самом деле обозначает огромное простое в квадрате." Ну я заглянул в ту тему про поиск чисел, а там всё такое, какой-то птичий язык. :mrgreen:

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


29/04/13
8307
Богородский
wrest в сообщении #1573910 писал(а):
Ну и конечно возникший в этой теме Yadryara с вопросом "я делаю биекцию" хотя сделать надо было сверку двух списков строк, предварительно один из них манипулировав к формату второго,

Да, слово "биекция", видимо, не шибко точное. Прошу не серчать :-)

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


20/08/14
11867
Россия, Москва
wrest
Да, разумеется проще всего заменить в привычном редакторе (и для меня это FAR). Но раз человек спросил здесь, то я же не буду заменять за него, а программа у меня уже была готовой, да плюс будет примером как можно такое сделать в PARI, почему нет.
Но я ответил не на заданный здесь вопрос, а на подразумеваемый вопрос, из исходной темы, так как просто знаю что он реально хотел (сам именно это решал недавно). Потому и странные вещи типа неинициализированных переменных или непонятных констант или лишний (не запрошенный вопрошающим) if И показал только саму требуемую процедуру преобразования, а уж встроить её в свой код несложно.
Ну и про точку (как и про биекцию, да) он был не прав, уж не стал поправлять, ибо здесь нет смысла это обсуждать.
В исходной теме не птичий язык, а обычный сленг. Ибо удобно. Если интересно - спросите там, объясним.

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


13/08/08
14495
{k=1; print1("wh "); while( k!==3, print1(k," "); k++; if(k==5,break)) ;print(" ");}
wh

никак не пойму :oops:

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


05/09/16
12112
gris в сообщении #1574046 писал(а):
никак не пойму

"Не равно" это != или <> а не !==

? {k=3; print1("wh "); while( k<>3, print1(k,"."); k++; if(k==5,break)) ;print("#");}
wh 1.2.#
?


Кстати напомню, на всякий случай, различие между while() и until()
until() всегда выполняется по крайней мере один раз, потом проверяет условие
while() сначала проверяет условие, потом выполняется если соблюдено
? {k=3; print1("wh "); while( k<>3, print1(k,"."); k++; if(k==5,break)) ;print("#");}
wh #
? {k=3; print1("wh "); until( k<>3, print1(k,"."); k++; if(k==5,break)) ;print("#");}
wh 3.#
?

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


13/08/08
14495
[wrest, спасибо. Я, собственно, и проверял четыре случая с until и while и равно/неравно. И вот споткнулся на синтаксической ошибке. А как тогда отрабатывается !==, раз ошибка не указывается?

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


20/08/14
11867
Россия, Москва
gris в сообщении #1574053 писал(а):
А как тогда отрабатывается !==, раз ошибка не указывается?
Как сравнение с факториалом:
Код:
? k=6;if(3!==k,print(1),print(0))
1
? k=3;if(k!==6,print(1),print(0))
1


-- 16.12.2022, 14:11 --

Забавно что есть и ===:
gp_users.pdf писал(а):
<>, !=: test for (exact) inequality.
==: test for (exact) equality.
===: test whether two objects are identical component-wise. This is stricter than ==: for instance, the integer 0, a 0 polynomial or a vector with 0 entries, are all tested equal by ==, but they are not identical.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 810 ]  На страницу Пред.  1 ... 35, 36, 37, 38, 39, 40, 41 ... 54  След.

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



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

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


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

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