Java 计算一些方程

Java 计算一些方程,java,function,equations,Java,Function,Equations,具有以下功能: f(x)= 4(x-1)(x-3)/(0-1)(0-3) g(x)= 2(x-0)(x-3)/(1-0)(1-3) h(x)= 3(x-0)(x-1)/(3-0)(3-1) 我想计算它们的总和mod p。作为参考,p=7 然而,我最感兴趣的是最终结果中x的幂的系数。我会告诉你我的意思 我的步骤: f(x)=4(x-1)(x-3)/3 g(x)=-(x-0)(x-3) h(x)=(x-0)(x-1)/2 f(x)+g(x)+h(x)=(8(x-1)(x-3)-6(x-0)(x-

具有以下功能:

f(x)= 4(x-1)(x-3)/(0-1)(0-3)
g(x)= 2(x-0)(x-3)/(1-0)(1-3)
h(x)= 3(x-0)(x-1)/(3-0)(3-1)
我想计算它们的总和
mod p
。作为参考,
p=7

然而,我最感兴趣的是最终结果中x的幂的系数。我会告诉你我的意思

我的步骤:

f(x)=4(x-1)(x-3)/3
g(x)=-(x-0)(x-3)
h(x)=(x-0)(x-1)/2

f(x)+g(x)+h(x)=(8(x-1)(x-3)-6(x-0)(x-3)+3(x-0)(x-1))/6
=(8(x^2-4x+3)-6(x^2-3x)+3(x^2-x))/6
=(8x^2-32x+24-6x^2+18x+3x^2-3x)/6
=(5x^2-17x+24)/6

1/6 mod 7=6
因此,我们得到的是乘以6,而不是除以括号,括号也将变成mod 7:

=(5x^2-17x+24)*6
=30x^2-102+144 
这也是mod 7,但是如果我能得到系数,我可以分别为每个系数做。最终结果将是
2x^2+3x+4


所以,我感兴趣的是系数30,-102和144(或者2,3,4,没关系)。如果有一种更快或更简单的方法(我可能在计算中做了无用的步骤),我如何用java计算从f+g+h得到它们?

据我所知,您正在计算

在3个数据点(x_0,y_0),(x_1,y_1),(x_2,y_2)的特定情况下,在您的示例中是(0,4),(1,2),(3,3),计算非常简单

f(x)=y_0*l_0(x)=y_0/((x_0-x_1)*(x_0-x_2))*(x^2+-(x_1+x_2)*x+(x_1*x_2))

其他两个多项式可以类似地计算

在它们的总和中,您只需将相应的系数组合在一起,然后进行模运算。
(可以通过逆元素的乘法进行除法,在素数模的情况下,逆元素可以通过a^(p-2)的帮助轻松计算。)

您是否执行mod 7的除法?您是否考虑了该问题的一般化?因为现在您已经完成了计算,Java中的解决方案只是某种形式的
returnnewint[]{2,3,4}。是的。除以6意味着乘以6^(-1),模式7意味着乘以6。因为6^(-1)mod 7是6。@user2357112在初始阶段I中有f+g+h,而不是2x^2+3x+4。这太简单了:染色,但是现在您已经计算了
f+g+h
,您可以
返回新的int[]{2,3,4}。你有更一般的输入表格吗?