日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速幂+快速幂取模

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速幂+快速幂取模 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速冪是優化的冪運算算法。
快速冪取模是快速冪+同余定理。

一、暴力冪運算

考慮計算 311,可以讓3累乘11次,復雜度是O(n)

int Pow1(int a, int b) {int ans = 1;for (int i = 0; i < b; i++) ans *= a;return ans; }int main() {cout << Pow1(3, 11) << endl;return 0; }

輸出:

177147

二、快速冪

以 311 舉例。把指數11寫成二進制形式是1011,所以
11 = 23 + 0 × 22 + 21 + 20

所以 311 又可以寫成:
311 =3^ (23 + (0 × 22) + 21 + 20)

拆括號得:
311 = 38 × (0 × 34) × 32 × 31

可以發現乘法因子是以平方的形式增長的,比如 32 等于 31 的平方,38 等于 34 的平方。
由此規律,可以寫出快速冪算法了。
我們先定義一個ans=1來保存答案,然后從低到高遍歷指數b的每一個二進制位,同時我們讓底數a隨著循環每次做一個平方,a, a2, a4, a8,…。
可以寫出快速冪的框架:

int Pow(int a, int b) {int ans = 1;while (b) {...a *= a;b >>= 1;}return ans; }

因為11是1011,311 = 38 × (0 × 34) × 32 × 31,可以發現,當二進制位等于1時,ans要累乘一次a。因此完整代碼如下:

#include <iostream> using namespace std;int Pow(int a, int b) {int ans = 1;while (b) {//因為1的二進制是0000 0001,所以 b & 1 為真就意味著 b 的最低位是1。if (b & 1) ans *= a;a *= a;b >>= 1;}return ans; }int main() {cout << Pow(3, 11) << endl;return 0; }

以上就是快速冪算法的分析。

三、快速冪取模

快速冪取模可以用來解決 “1145141919810 除以6的余數等于多少”或者是“230的后6位是多少”之類的問題。它是在快速冪的基礎上,結合了同余定理。

#include <iostream> using namespace std;int Pow(int a, int b, int c) {int ans = 1;while (b) {if (b & 1) ans = ans * a % c;a = a * a % c;b >>= 1;}return ans; }int main() {cout << Pow(114514, 1919810, 6) << endl;cout << Pow(2, 30, 1000000) << endl;return 0; }

輸出:

4 741824

總結

以上是生活随笔為你收集整理的快速幂+快速幂取模的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜男人av | 国产免费高清 | 日本东京热一区二区三区 | 成人在线高清视频 | 精品一区二区三区不卡 | 欧美xxxxxxxxx | 精品69| 久久久久免费精品视频 | 欧美激情一级精品国产 | 图片区视频区小说区 | 污污视频在线免费观看 | 97人人人| 欧美日韩午夜精品 | 国产原创视频 | 欧美日韩亚洲国产 | 伊人啪啪网| 老牛影视一区二区三区 | 浮力影院国产第一页 | 亚洲不卡在线 | 五月婷婷综合在线观看 | 中文字幕免费在线 | 男女羞羞的视频 | 密臀av| 一级黄色片国产 | 国产乱子伦精品无码专区 | 亚洲综合射 | 毛片a片免费观看 | 久久99精品波多结衣一区 | 久久99精品久久久 | 波多野结衣一二三区 | 精品无码一级毛片免费 | 欧美日韩高清一区二区 国产亚洲免费看 | 久草99 | 一级特级黄色片 | 精品成人中文无码专区 | 欧美变态口味重另类在线视频 | 疯狂做爰的爽文多肉小说王爷 | 国产不卡二区 | 国产高清小视频 | 动漫美女舌吻 | 国产精品乱码久久久久久 | 在线免费观看日韩av | 成年人在线观看视频免费 | 欧美丰满bbw | 国产乱码久久久久久 | 亚洲性大片 | 韩国精品视频 | 污视频网站入口 | 色戒未删节版 | 人妻少妇精品无码专区二区 | 欧美一级在线免费 | 69视频国产 | 久久99国产综合精品免费 | 国产绿帽一区二区三区 | 91免费在线播放 | 97久久国产亚洲精品超碰热 | 久热欧美 | 精品黄色在线观看 | 免费污污视频在线观看 | 国产日韩欧美一区 | 国产精品成人一区二区三区 | 国久久久| 免费黄色在线观看 | 五级黄高潮片90分钟视频 | 亚洲欧洲日韩 | 中国一区二区三区 | 免费人成视频在线 | 在线观看网址你懂的 | 欧美国产片 | 日韩久久一区 | 亚洲图片在线观看 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 欧美自拍偷拍第一页 | 精品动漫3d一区二区三区免费版 | 日本免费观看视频 | 三级在线免费 | 污污网站在线观看 | 久久久久久久久久99 | 久久成人福利视频 | av第一页 | 午夜无遮挡| 精品久久香蕉国产线看观看亚洲 | 精品无码久久久久 | 亚洲免费av网 | 影音先锋在线国产 | www.欧美在线观看 | 久久久av一区二区三区 | 日韩精品xxxx| 午夜在线视频免费观看 | 欧美 日韩 国产 成人 在线观看 | 强伦人妻一区二区三区视频18 | 蜜臀av无码精品人妻色欲 | 亚洲第一页夜 | 欧美日韩二三区 | 激情视频区 | 成年人免费看毛片 | 国内精品久久久久久久 | 黄色av日韩 | 97国产成人|