Мне нужно прочитать в Полином и преобразовать его в нормализованную форму.
Например, я читаю в 4*x * (x^2 + 4x + 3)
и его необходимо преобразовать в 4*x^3 + 16*x^2 + 12*x
.
Есть ли какой-то хитрый алгоритм для этого или мне нужно что-то придумать. Я думаю, в основном это просто расширяет этот термин. Я разбираю термин рекурсивно и генерирую синтаксическое дерево, поэтому операции нормализации будут применены к этому дереву синтаксического анализа.
Спасибо всем, кто помогает мнеНормализация полинома
-1
A
ответ
1
Это может быть выражение бинарное дерево, что представляет собой выражение 4*x * (x^2 + 4x + 3)
:
*
/ \
* +
4 x / \
^ +
x 2 / \
* 3
4 x
Теперь вы должны умножить 4x
с x^2+4x+3
, что может закончиться в бинарном дереве например, так же, как мы, люди:
+
/ \
+ *
/ \ * 3
* * 4 x
/\ /\
* ^ * *
4 x x 2 4 x 4 x
Затем продолжить умножение чисел и x's
с добавлением экспонентов. Вы должны искать каждого оператора в дереве и искать, чтобы его дочерние элементы применяли соответствующие алгебраические правила.
Надеюсь, это поможет.
Ответ скрыт в матрице ... –
Нет сложного алгоритма. Боюсь, вам придется подумать. –
После того, как вы сгенерируете дерево, вам нужно будет создать набор правил для изменения дерева (умножьте многочлены, добавьте экспоненты и т. Д.). – gab06