Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 28, 2015 18:30:29

gazoni16
Зарегистрирован: 2015-10-28
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение полинома в python.

извините за дублирование темы , но …
Вот может кто нибудь подскажет какие функции, классы и что еще мне стоит создать что бы научить питона упрощать выражения такого вида:
(x - 5)(2x^3 + x(x^2 - 9))

в выражение вида 3x^4 - 15x^3 - 9x^2 + 45x

Какие-то доп. модули для упрощения не предлагать .

Может алгоритм предложит или подскажет польскую запись как реализовать.

Спасибо.

Офлайн

#2 Окт. 28, 2015 18:54:10

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Решение полинома в python.

Я когда-то делал так:
1) парсим выражение и составляем два словаря, где ключи - степени, значения - коэффициенты
2) тогда само умножение довольно простое - пройтись по словарях и перемножать коэффициенты, а ключ - сумма ключей (4x^3 * 5x^2 = 20x^5, или

res[3+2] = 4 * 5
)
3) теперь можно делать из словаря строку.

Главная трудность - распарсить изначальное выражение.



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Отредактировано Master_Sergius (Окт. 28, 2015 18:54:55)

Офлайн

#3 Окт. 28, 2015 19:14:46

gazoni16
Зарегистрирован: 2015-10-28
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение полинома в python.

Если честно то степени меня меньше всего волнуют. Большую проблему вижу в раскрытии скобок.

Офлайн

#4 Окт. 28, 2015 19:47:16

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Решение полинома в python.

В данном случае надо будет использовать рекурсию. По сути, x(x^2 - 9) - это то же перемножение полиномов, которое внутри большего… Регекспы должны помочь найти выражения в скобках:

>>> expr
'(x - 5)(2x^3 + x(x^2 - 9))'
>>> re.findall("\([^(]*?\)", expr)
['(x - 5)', '(x^2 - 9)']



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#5 Окт. 28, 2015 19:58:01

gazoni16
Зарегистрирован: 2015-10-28
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение полинома в python.

о да. это мне несколько упрощает решение)))

Офлайн

#6 Окт. 28, 2015 22:41:14

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Решение полинома в python.

символьные вычисления SymPy Смотрите в документации раздел tutorial для быстрого ознакомления. Есть онлайн песочница

Но вы почему то хотите делать это руками. Препод злой?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Окт. 28, 2015 22:43:56)

Офлайн

#7 Окт. 30, 2015 15:34:15

gazoni16
Зарегистрирован: 2015-10-28
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение полинома в python.

JOHN_16
символьные вычисления SymPy Смотрите в документации раздел tutorial для быстрого ознакомления. Есть онлайн песочница Но вы почему то хотите делать это руками. Препод злой?

Вступительная комиссия злая.

Неужели все сумпу своего питона кормят?

На Sympy задача решена:

f = (new_list(pilinom)) # Изменит вид первоначального выражения.

f= sympify(f) ### Из строковой переводит в типизированную строку.

f = ((f).expand()) ### Раскрывает скобки и производит операции упрощения.

f = (vid(f)) # Изменит вид в соответствии c требованиями.


Офлайн

#8 Окт. 31, 2015 00:47:33

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Решение полинома в python.

gazoni16
Неужели все сумпу своего питона кормят?
конечно. Библиотеки для того и пишутся что бы упрощать жизнь.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Окт. 31, 2015 08:18:46

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Решение полинома в python.

У меня ещё и wxMaxima стоит.

Офлайн

#10 Ноя. 1, 2015 17:57:20

gazoni16
Зарегистрирован: 2015-10-28
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Решение полинома в python.

А кто нить польской обратной последовательностью пользовался???

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version