類歐幾里得演算法

2022-05-20 11:38:21 字數 1791 閱讀 7737

萬惡之源

首先推一下可以發現,我們可以分「位」計算。

設二進位制下第\(k\)對答案的貢獻為\(\mathrm\),則

\[\mathrm\sum\limits_^ \texttt=\sum\limits_^ \left \lfloor \frac} \right \rfloor \bmod 2 =\sum\limits_^ \left \lfloor \frac} \right \rfloor - 2\left \lfloor \frac} \right \rfloor

\]最後一步相當於第\(k\)之前的內容消掉。

然後就引出了乙個通用的問題:如何快速地求出\(\sum\limits_^\left \lfloor \dfrac \right \rfloor\)的值。

首先我們可以先算一下\(\sum\limits_^\left \lfloor \dfrac \right \rfloor\)的值(因為類歐的下標就是從\(0\))開始的。

(設\(f(a,b,c,n)=\sum\limits_^ \left \lfloor \dfrac \right \rfloor\))

\(\left \lfloor \dfrac \right \rfloor\)可能是個假分數,所以我們可以把它拆成乙個帶分數。

設\(a'=a \mod c\),\(b'=b \mod c\)。

則\[\sum\limits_^\left \lfloor \dfrac \right \rfloor=\left \lfloor \frac \right \rfloor +i \left \lfloor \frac \right \rfloor+\left \lfloor \frac \right \rfloor = f(a',b',c,n)+\dfrac\left \lfloor \frac \right \rfloor+(n+1)\left \lfloor \frac \right \rfloor

\]對於\(a的情況,我們就再次亂搞。

(設\(m=\left \lfloor \dfrac \right \rfloor\))

那麼$f(a,b,c,n) =\sum\limits_\sum\limits_ [\left \lfloor \dfrac \right \rfloor \geqslant j ] $

這一步貌似把原式變複雜了,但是接下來就會發覺這是有用的。

接著,我們把\(j\)的下標改一改:$\sum\limits_\sum\limits_ [\left \lfloor \dfrac \right \rfloor \geqslant j+1 ] $

很好,接下來就開始秀操作了。

將求和符號右邊的式子轉換一下,得$\sum\limits_\sum\limits_ [i \geqslant \dfrac ] $

把第乙個求和符號去掉(因為方框裡面那個只是\(bool\)變數,完全可以換成差式),再把不等式的符號改成大於號,得

$\sum\limits_^ n- \left \lfloor \dfrac \right \rfloor $

這裡多了個\(-1\)是因為$x \geqslant y \rightarrow x>y-1 $,然後向下取整消失了又出現是正確的,這裡真的不想解釋。

然後有沒有發現$\left \lfloor \dfrac \right \rfloor \(和\)f$的定義很像?

沒錯!這就說明我們的變換成功了!

將上面式子中的\(n\)提出求和符號,再將\(f\)代入,得

\(nm-f(c,c-b-1,a,m-1)\)

所以這就是類歐。

例題**

當然了,類歐的基本式子還可以加上指數和係數,這個有空再更。

類歐幾里得演算法

比較快速地算出下面的式子 f n,a,b,c,k 1,k 2 sum limits n x lfloor frac rfloor 不妨假設現在 a geq c 或 b geq c 那麼 sum limits n x lfloor frac rfloor sum limits n x lfloor f...

類歐幾里得演算法

這個演算法用於求一條直線下整點個數,我們定義 f a,b,c,n sum lfloor frac rfloor 其他幾個乘係數的擴充套件不想學了tat a ge c 或 b ge c 當 a ge c 或 b ge c 時,我們考慮把分子對 c 的商和餘數分別提出來,那麼有 begin f a,b,...

類歐幾里得演算法

對於給定的元 a,b,c,n 設 f i lfloor frac rfloor 求 f a,b,c,n sum 0 nf i g a,b,c,n sum 0 nf i 2 h a,b,c,n sum 0 ni cdot f i lfloor frac rfloor lfloor frac rfloo...