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

在Java中,什么是将大量多项式相乘的有效方法?,java,matrix,polynomials,Java,Matrix,Polynomials,我有一个函数,它定义了一个非常长的多项式,在矩阵运算中非常有用 该公式乘以形式为(1+xi*yj)的二进制数,其中i和j被下标,分别对应于所讨论矩阵的行和列。得到的多项式是所有二项式与i和j的每个置换的乘积 例如,3 x 2矩阵的多项式乘积为: (1+x1*y1)(1+x1*y2)(1+x2*y1)(1+x2*y2)(1+x3*y1)(1+x3*y2) 为了澄清,变量后面的每个数字都应作为下标处理 java有可能计算出如此大量的数据吗?或者可以将任务委托给另一个数学引擎吗 如果可能的话,我们将如

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

该公式乘以形式为
(1+xi*yj)
的二进制数,其中
i
j
被下标,分别对应于所讨论矩阵的行和列。得到的多项式是所有二项式与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);
int结果=1;
int x=2;
int y=3;
整数[][]多项式=新整数[x][y];
多项式[0][0]=1;
多项式[0][1]=2;
多项式[0][2]=3;
多项式[1][0]=4;
多项式[1][1]=5;
多项式[1][2]=6;

对于(int i=0;我能给你展示一下你到目前为止在这个案例中有什么代码吗?这看起来像是一个你应该解决的赋值问题,因为它是可以写的,可以肯定地说答案是肯定的,在Java中可以计算出这种类型的东西。虽然你没有告诉我们确切的数量。我不知道如何处理这个问题,因为最终这个问题将扩展到包括多达40个不同的变量,所有变量都将相互测试。我确实知道,如果我创建一个只包含10个变量的多项式,表达式将大约有2^45到10^13个项长。@biziclop这是个大问题,您需要大量的RAM:)事实上,你也需要相当多的磁盘,你可能想把你的计算分布在几台计算机上。谢谢你,但它只涉及多项式计算中的数字。有没有办法把系数、指数和变量联系在一起,并能将它们相乘?@Hubert Popiołkiewicz