Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2017 14:59:49

Raptor757
Зарегистрирован: 2017-01-31
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа "умножение многочленов"

Всем привет! нужна ваша помощь. Нужно написать программу “перемножить два многочлена, заданных списками”
Питон изучаю только второй день, а уже задача.
не могу реализовать, как записать в массив многочлен и как их умножить и где и как это все записывается??
Кто знает помогите пожалуйста.

Офлайн

#2 Янв. 31, 2017 16:12:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Программа "умножение многочленов"

Raptor757
как записать в массив многочлен
Записываешь его коэффициенты в обратном порядке.

Например:
4x^4 + 2x^2 - x + 3 -> (3, -1, 2, 0, 4)

Для умножения нужно просто умножить каждый член одного многочлена на каждый член другого многочлена.

Умножим наш многочлен на многочлен 2x

(4x^4 + 2x^2 - x + 3) * 2x = 8x^5 + 4x^3 - 2x^2 + 6x

(3, -1, 2, 0, 4) * (0, 2) = (0, 6, -2, 4, 0, 8)

То есть при умножении на x всё сдвинулось вправо, а при умножении на коэффициент коэффициенты просто перемножились. Мы умножили всё на коэффициент 2, а потом сдвинули всё вправо на один элемент.

Умножим наш многочлен на многочлен 2x + 1

(4x^4 + 2x^2 - x + 3) * (2x + 1) = (4x^4 + 2x^2 - x + 3) * 2x + (4x^4 + 2x^2 - x + 3) * 1 = (8x^5 + 4x^3 - 2x^2 + 6x) + (4x^4 + 2x^2 - x + 3) = 8x^5 + 4x^4 + 4x^3 + 5x + 3

(3, -1, 2, 0, 4) * (1, 2) = (3, -1, 2, 0, 4) + (0, 6, -2, 4, 0, 8) = (3, 5, 0, 4, 4, 8)

В общем, умножаешь многочлен на очередной член, а потом прибавляешь это к общему результату и на следующем шаге цикла всё повторяется. И ты просто должен следить только за тем, на сколько нужно сдвигать многочлен после умножения на коэффициент (инкрементировать счётчик текущей степени x, начиная с нуля).



Отредактировано py.user.next (Янв. 31, 2017 16:20:12)

Офлайн

#3 Фев. 1, 2017 22:39:58

Raptor757
Зарегистрирован: 2017-01-31
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа "умножение многочленов"

py.user.next
спасибо! помог)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version