Полная реализация Java на основе многочленов на основе массива приведена здесь: http://www.cs.lmu.edu/~ray/classes/dsa/assignment/2/answers/
Основная идея заключается в том, что если у вас есть многочлен, подобный
4x^6-2x+5
, то ваш массив будет выглядеть следующим образом
0 1 2 3 4 5 6
+----+-----+----+----+----+----+----+
| 5 | -2 | 0 | 0 | 0 | 0 | 4 |
+----+-----+----+----+----+----+----+
То есть
- коэффициент 5 находится в слоте 0 массива (представляет 5x ^ 0)
- коэффициент -2 находится в слоте 1массива (представляющего -2x ^ 1)
- коэффициент 4 находится в слоте 6 массива (представляющего 4x ^ 6)
Вы, вероятно, можете видеть, как это представление будетрасточительно для полиномов, таких как
3x^5000 + 2
В подобных случаях вы хотите вместо этого использовать представление разреженный массив .Простейшим подходом было бы использование карты (словаря), ключами которой являются экспоненты, а значениями являются коэффициенты.