专栏文章

一种特殊的模意义下多元高次方程的解法

算法·理论参与者 14已保存评论 13

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
13 条
当前快照
1 份
快照标识符
@miogp3pg
此快照首次捕获于
2025/12/02 18:55
3 个月前
此快照最后确认于
2025/12/02 18:55
3 个月前
查看原文
省流:对于一个多元的 nn 次齐次多项式减去一个 n1n - 1 次的多元齐次多项式等于常数,有一种简单的 O(Pm×Q)O(\sqrt {Pm}\times Q) ,复杂度的做法(mm 为多项式中每项的元数和,QQ 是快速幂复杂度)。
例如本算法可以解决如下问题:
x1000000+y1000000+z1000000+x999999y+x999999zy999999z=C+x999999+y999999+z999999x^{1000000} + y^{1000000} + z^{1000000} + x^{999999}y+x^{999999}z-y^{999999}z = C + x^{999999} + y^{999999} + z^{999999}
首先考虑如何求出若干的 C=0C = 0 的解:
随机 r1,r2r_1, r_2,我们另 y=r1x,z=r2xy = r_1x, z = r_2x,那么我们可以发现等式可以形如 Ax1000000Ax^{1000000} = Bx999999Bx^{999999},取 x=BAx = \dfrac B A 即可。
假设我们现在得到了 C=0C = 0 的解,其中左式和右式均等于 kk
那么假设 xyzxyz 同时乘上 RR,则此时两式差为 k(R1000000R999999)k(R^{1000000}-R^{999999})
假设我们现在有若干个 C=0C = 0 的解和若干个 (R1000000R999999)(R^{1000000}-R^{999999}),那么我们只要找到两个乘起来 =C=C 的一组解即可。
所以我们将随机若干 C=0C = 0 的解存入哈希表,然后随机 RR 寻找 C(R1000000R999999)\dfrac C {(R^{1000000}-R^{999999})} 是否在哈希表中即可。
推广上述做法:
然后求 C=0C = 0 的解,我们就先随机若干个 r2,r3...rtr_2,r_3...r_t,表示 xa=rax1x_a = r_ax_1,那么此时解 C=0C = 0 等价于原式形如 Ax1000000=Bx999999Ax^{1000000} = Bx^{999999},取 x=BAx=\dfrac B A,并将解存入哈希表中。
然后我们随机若干 RR,并检验哈希表中是否存储了 CRnRn1\dfrac C {R^n - R^{n-1}},如果有则将每个数乘上 RR 作为结果返回。
假设第一步去了 ss 个解,那么第二步期望要 O(PS)O(\dfrac P S) 步。
即快速幂次数为为 O(sm+Ps)O(sm+\dfrac P s),取 s=Pms = \sqrt {\dfrac P m} 得到复杂度 O(Pm×Q)O(\sqrt{Pm}\times Q)QQ 为快速幂复杂度(说不定可以省去)。

评论

13 条评论,欢迎与作者交流。

正在加载评论...