Например, как я могу определить частное и остаток, когда что-то вроде x^4 − 3x^2 + 4
делится на x − 2
,
Я не могу понять, как это сделать без какой-либо библиотеки. Я не против использования какой-либо библиотеки, но могу найти только одну https://github.com/markrogoyski/math-php и это не поддерживает то, что я пытаюсь сделать.
Синтетическое подразделение был способ, которым меня учили. Работайте с листком бумаги и карандашом.
(x^4 -3x^2 + 4)/(x-2) = x^3 + 2x^2 + x + 2 with a remainder of 8.
Вы должны быть в состоянии понять, как манипулировать массивами коэффициентов, чтобы получить нужный вам результат.
Я вижу три массива здесь:
Другой идеей было бы написать объекты для Monomial и Polynomial. Постройте правильное поведение в этих объектах.
Самый простой способ:
sudo apt-get install maxima
в PHP $out = shell_exec("maxima --very-quiet -r 'divide(x^4-3*x^2+4, x-2);'");
Дает ответ в стандартном выводе:
3 2 [x + 2 x + x + 2, 8]
Я не использовал деление полиномов раньше, но я подозреваю, что остаток здесь дается не в виде дроби. В этом случае просто добавьте знаменатель в PHP-часть форматирования ответа — в данном случае 8 / (x-2).