用户工具

站点工具


2020-2021:teams:legal_string:王智彪:类欧几里得算法

这是本文档旧的修订版!


类欧几里得算法

算法思想

我们设 $f(a,b,c,n)=\sum_{i=0}^{n}\lfloor {\frac {ai+b} {c}} \rfloor$

其中 $a,b,c,n$ 为常数,我们需要一个 $O(logn)$ 的算法。

如果 $a≥c$ 或者 $b≥c$ ,我们可以将 $a,b$ 对 $c$ 取模来化简问题:

$f(a,b,c,n)=\sum_{i=0}^{n}\lfloor {\frac {ai+b} {c}} \rfloor$

$=\sum_{i=0}^{n}\lfloor {\frac {(\lfloor {\frac a c} \rfloor c+a\ mod\ c)i+(\lfloor {\frac b c} \rfloor c+b\ mod\ c)} {c}} \rfloor$

2020-2021/teams/legal_string/王智彪/类欧几里得算法.1629034192.txt.gz · 最后更改: 2021/08/15 21:29 由 王智彪