a b sqrt c 取整取模

2021-07-06 04:40:47 字數 527 閱讀 3175

反正我就自己記一記,

首先構造an+sqrt(c)*bn和an-sqrt(c)*bn,

然後隨便證明一下得到要求的向下取整的值為2*an-1,這裡是針對這個題,不同情況可以參考這樣隨機應變一下,大概

an和bn可以通過矩陣乘法遞推得到

因為指數太大必須找迴圈節,這裡模乙個最大4w多的質數,據說這個資料範圍可以直接暴力乙個乙個算判斷指數到多少會變成單位矩陣,這個就是迴圈節了

再據說就是,根據群論的知識這裡可以保證mod*(mod-1)*(mod^2-1)是乙個迴圈節,資料範圍也保證了這個是在ll範圍內的,於是指數就可以直接模這個了,這樣還要再注意一下ll*ll%ll的溢位

但是其實這裡用(mod-1)*(mod+1)也是可以過的,這樣還不用處理溢位,快多了

反正就是總結一下幾個可以模的東西,記所模質數為p

p-1(p-1)*(p+1)

p*(p-1)*(p+1)

p*(p-1)*(p+1)*(p-1)

有什麼問題乙個乙個試就好了,最下面那個有辦法處理的話當然直接用是最保險了。

取模與取餘

通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...

取餘和取模

對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a b 2.計算模或者餘數 r a c b.但是求模運算和求餘運算在第一步不同 求餘運算在取c的值時,向0 方向捨入 int強制轉換 而取模運算在計算c的值時,向負無窮大方向捨入 floor 函式 因此,當a和b符號一致時,求...

取模和取餘

近日在讀c primer第五版,在2.1.2型別轉換一節中,有這樣乙個例子 unsigned char c 1 假設char佔8位元,c的值位255當看到255這個值,一臉矇圈,為什麼是這個值呢?書上的解釋是 當我們賦給無符號型別乙個超出它表示範圍的值時,結果是初始值對無符號型別表示數值總數取模後的...