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)