C 求余用的「 」有與它效率相同的其它演算法嗎?

時間 2021-05-07 18:02:36

1樓:

據我所知一般對大數取模才會用其他演算法,形如(a^b)%k的運算(a、b都很大時)可以使用蒙哥馬利快速冪模演算法(Montgomery reduction algorithm)

Montgomery reduction

2樓:

一樓說的有缺陷,求餘雖然只有一條指令但這條指令要耗費100多個週期.

任意的"%"有簡便方法,較為複雜,好久不用忘了..不好意思,不過先來看看乙個數對2的N次方整型求餘的簡便方法吧:

正如樓上所說,是個bit trick:

x%A == x&(A-1); (注意,A必須是2的N次方).

同理的,檢查x是否為2的N次方:

x&(x-1)==0

實際上如果你用MSVC或者GCC的話,如果A是個2的N次方,你會發現編譯器很可能

就是按這個方法做的.

像這種細微的優化,最好還是從演算法本身來優化,比如實現乙個ring buffer,

與其找乙個快速的mod方法,還不如保證ring buffer的尺寸永遠是2的N次方,然後

使用上述bit trick.

影響C 程式效率的原因有哪些?

龍小愛程式設計 1 多執行緒會提高程式處理效率,但是太多也會搶奪資源,導致等待。你的專案應該不至於 2 vector使用不當確實會導致處理效能下降,不知道你是怎麼用的?最新的C 11可以使用emplace back減少記憶體移動次數,不妨使用這個。3 粗判斷確實會減少運算次數但是提公升效果根據程式時...

《青春有你 3》的餘景天 C 位出道懸嗎?

冰冰冰冰 懸,真的懸。不得不說,棈沒有ol火,甚至沒有婧火,在這種情況下,雖然yjt拿著順位第一,但是舞台現場投票到現在還沒有最高票過 雖然我對於開始每次都比lyz低2票有點奇怪,真是巧啊 而且小余現在確實也是加拿大國籍,而相比之下,lyz身份背景就很香了 其實感覺aqy也不是很像讓yjtC位,有點...

如何評價《青春有你3》中余景天的詐c事件?它給羅一舟造成了什麼影響,算不算「偷了羅一舟的人生」?

被逗笑的貓 上學期清還沒播的時候,話題度最大的就是餘景天了,當時我室友也在嚎叫說他是初C,節目播出之後要pick他,這還叫沒吃到紅利嗎?不過這學期我室友看了羅一舟舞台開始每天叫我們給他投票了hh。說實話很多秀芬就是慕強,節目開播前余景天那波營銷絕對賺足了關注 網際網路有記憶,別說沒營銷了,節目播出之...