2014 dxdy logo

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

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




На страницу Пред.  1 ... 35, 36, 37, 38, 39, 40, 41 ... 56  След.

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение14.12.2022, 15:18 
Yadryara в сообщении #1573802 писал(а):
Ну то есть, например, "2.7" в 14 ?

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение14.12.2022, 16:09 
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 
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 
Аватара пользователя
Dmitriy40, Благодарю.

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

Линукса нет.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение14.12.2022, 18:07 
Yadryara
А откуда у вас берется такая странная строка, как "2.7"? Может, манипулировать лучше до того? Т.е. в том месте где эта строка пояляется или формируется?
Вобще точка запятая и звездочка (и некоторые другие) это трудные символы для манипуляций, в зависимости от ситуации могут требовать неочевидной записи escape-последовательностей и всего такого.

-- 14.12.2022, 18:12 --

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

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение14.12.2022, 18:30 
Аватара пользователя
wrest в сообщении #1573866 писал(а):
А откуда у вас берется такая странная строка, как "2.7"?

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

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение15.12.2022, 04:00 
wrest в сообщении #1573861 писал(а):
а... так для этого есть линукс (у кого есть)
Для этого много чего есть, например любой текстовый редактор (включая и FAR), но если уже есть PARI (а он точно есть), то зачем искать что-то ещё если можно сделать и на нём, пусть и не слишком хорошо, это ведь не понадобится миллиарды и триллионы раз.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение15.12.2022, 10:20 
Dmitriy40 в сообщении #1573891 писал(а):
пусть и не слишком хорошо, это ведь не понадобится миллиарды и триллионы раз.

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

P.S.

(Оффтоп)

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение15.12.2022, 11:17 
Аватара пользователя
wrest в сообщении #1573910 писал(а):
Ну и конечно возникший в этой теме Yadryara с вопросом "я делаю биекцию" хотя сделать надо было сверку двух списков строк, предварительно один из них манипулировав к формату второго,

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

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение15.12.2022, 18:13 
wrest
Да, разумеется проще всего заменить в привычном редакторе (и для меня это FAR). Но раз человек спросил здесь, то я же не буду заменять за него, а программа у меня уже была готовой, да плюс будет примером как можно такое сделать в PARI, почему нет.
Но я ответил не на заданный здесь вопрос, а на подразумеваемый вопрос, из исходной темы, так как просто знаю что он реально хотел (сам именно это решал недавно). Потому и странные вещи типа неинициализированных переменных или непонятных констант или лишний (не запрошенный вопрошающим) if И показал только саму требуемую процедуру преобразования, а уж встроить её в свой код несложно.
Ну и про точку (как и про биекцию, да) он был не прав, уж не стал поправлять, ибо здесь нет смысла это обсуждать.
В исходной теме не птичий язык, а обычный сленг. Ибо удобно. Если интересно - спросите там, объясним.

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение16.12.2022, 13:05 
Аватара пользователя
{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 
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 
Аватара пользователя
[wrest, спасибо. Я, собственно, и проверял четыре случая с until и while и равно/неравно. И вот споткнулся на синтаксической ошибке. А как тогда отрабатывается !==, раз ошибка не указывается?

 
 
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение16.12.2022, 14:07 
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.

 
 
 [ Сообщений: 826 ]  На страницу Пред.  1 ... 35, 36, 37, 38, 39, 40, 41 ... 56  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group