在 Java 中乘以大量多项式的有效方法是什么?

What is an efficient way of multiplying massive polynomials in Java?

我有一个函数,它定义了一个非常长的多项式,在矩阵运算中很有用。

该公式乘以 (1+xi*yj) 形式的二项式,其中 ij 带有下标,分别对应于相关矩阵的行和列。结果的多项式是所有二项式与 i 和 j 的每个排列的乘积。

例如,一个 3 x 2 矩阵的多项式乘积为:

(1+x1*y1)(1+x1*y2)(1+x2*y1)(1+x2*y2)(1+x3*y1)(1+x3*y2)

为说明起见,变量后的每个数字都应视为下标。

java 是否有可能计算如此庞大的数量,或者可以将任务委托给另一个数学引擎?

如果可能的话,人们会如何实施呢?

也许这个想法可以帮助您解决问题:

    int result = 1;
    int x = 2;
    int y = 3;

    Integer [][] polynomials = new Integer[x][y];
    polynomials[0][0] = 1;
    polynomials[0][1] = 2;
    polynomials[0][2] = 3;
    polynomials[1][0] = 4;
    polynomials[1][1] = 5;
    polynomials[1][2] = 6;

    for(int i = 0; i<x; i++) {
        for(int j = 0; j<y; j++) {
            result *= (1 + polynomials[i][j]);
        }
    }
    System.out.println(result);