PHP写的求多项式导数的函数代码



<?php

function derivativePolynomial($coefficients) {
    $n = count($coefficients) - 1; // 多项式的最高次数
    $result = [];

    for ($i = 0; $i < $n; $i++) {
        $result[$i] = $coefficients[$i] * ($n - $i); // 求导公式,C(n,i) * a_n * x^(n-i) 的导数为 C(n,i) * a_n * (n-i) * x^(n-i-1)
    }

    // 移除结果数组中的空值或0值(如果有的话)
    $result = array_filter($result);

    return $result;
}

// 示例使用
$polynomial = [3, 2, 1]; // 表示多项式 3x^2 + 2x + 1
$derivative = derivativePolynomial($polynomial);

// 输出导数多项式的系数
print_r($derivative); // 应该输出 Array ( [0] => 6 [1] => 2 ) 表示导数多项式 6x + 2

?>

注意:

- 这个函数假设输入的系数数组`$coefficients`是按多项式从高次项到低次项的顺序排列的。

- 函数返回的导数多项式的系数数组也是按从高次项到低次项的顺序排列的。

- 示例中的多项式`3x^2 + 2x + 1`的导数是`6x + 2`,因此返回的系数数组是`[6, 2]`。

- 函数中没有处理常数项(即`x^0`的系数),因为常数项的导数是0,所以在结果数组中不会包含它。