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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

《STL源码剖析》学习--6章--power算法分析

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《STL源码剖析》学习--6章--power算法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在看侯捷的《STL源碼剖析》,其中有許多不太明白之處,后經分析或查找資料有了些理解,現記錄一下。

6章--power算法分析

書本中的算法如下所示:

template <class _Tp, class _Integer, class _MonoidOperation> _Tp __power(_Tp __x, _Integer __n, _MonoidOperation __opr) {if (__n == 0)return identity_element(__opr);else {while ((__n & 1) == 0) {__n >>= 1;__x = __opr(__x, __x);}_Tp __result = __x;__n >>= 1;while (__n != 0) {__x = __opr(__x, __x);if ((__n & 1) != 0)__result = __opr(__result, __x);__n >>= 1;}return __result;} }template <class _Tp, class _Integer> inline _Tp __power(_Tp __x, _Integer __n) {return __power(__x, __n, multiplies<_Tp>()); }


此處的冪運算X^N,采用的思路是將十進制N化解為二進制,N=(2^0)*N0+(2^1)*N1+……,其中Ni為化為二進制時第i位(0或1)。

如:N=40,化為二進制時為101000,此時X^40 =X^[ (2^0)*0 +(2^1)*0+(2^2)*0+(2^3)*1+(2^4)*0+(2^5)*1]

可以化簡為X^[(2^3)*1+(2^5)*1 ] = [X^(2^3)]*[X^(2^5)] ,X^[(2^i)*Ni] 后一項X^ {[2^ (i+1)] * Ni+1 },若Ni+1與Ni都為1,則前式后一項為前一項自己的平方。

冪運算用乘法來做,用移位運算和乘法運算來實現。

程序的思路:

(1)特殊情況,若N==0,則返回自己,與數學中X^0=1不相同。

(2)非特殊情況,

首先找到N化為2進制時最低位為1的那位,代碼如第一個while循環,每次檢測最低位是否為1,再進行右移判斷,

?如N化為二進制為101000,退出while時,N=101,x = X^(2^3),從此處可以看出x相同于數制的位權。(程序中的中間值x這里我用小x表示,初值用X表示);

?然后對N去掉后面零的值逐位判斷,每次都增大x,得到位權,如果為1,則與result相乘,直到N==0。


我們都知道,stl中的算法幾乎總是最高效的,思考一下為什么不用N個數相乘呢?如果用N個數相乘O(N),而用此二分法則是O(logN),且從前面非0的位開始,提高了效率。

同時感覺進制轉換算法與此類似。




總結

以上是生活随笔為你收集整理的《STL源码剖析》学习--6章--power算法分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亲子乱一区二区三区 | 97人妻精品一区二区 | 欧美黑人性受xxxx精品 | 色小说在线 | 国产在线精品一区二区 | 91九色在线视频 | 亚洲欧洲日本一区二区三区 | 草草影院av| 亚洲欧美日韩在线一区 | 熟妇熟女乱妇乱女网站 | 无遮挡毛片 | 成人片在线播放 | 色桃视频 | 欧美瑟瑟 | 欧美黑人又粗又大高潮喷水 | 日本在线色 | 色婷婷av国产精品 | 91精品久久久久久久久中文字幕 | 金8天国av| 亚洲无码精品一区二区三区 | www.精品视频 | 欧美人妻精品一区二区三区 | 免费看特级毛片 | 日本黄页视频 | 午夜小视频网站 | 夜夜嗨av一区二区三区网页 | 高潮一区二区 | gav成人 | 波多av在线 | 少妇毛片一区二区三区粉嫩av | 欧美日本国产在线 | 好吊一区二区三区 | 欧美情趣视频 | 久久色在线 | 捆绑最紧bdsm视频 | 男生插女生视频在线观看 | 大香伊人久久 | 亚洲a网| 国产精品免费一区二区区 | 水密桃av | 大地资源高清播放在线观看 | 日韩精品一区二区三区四区五区 | 天堂素人约啪 | 男女被到爽流尿 | 五月天婷婷网站 | 国产成人小视频在线观看 | 日韩一区二区三区av | 黄色在线观看国产 | 真实乱偷全部视频 | 韩国黄色大片 | 新婚若妻侵犯中文字幕 | 欧美日韩人妻精品一区在线 | www一区二区三区 | 少妇又紧又爽视频 | 99久久夜色精品国产亚洲 | 黄色激情视频在线观看 | 岛国av动作片| 熟女一区二区三区四区 | 中文字幕免费一区 | 一区二区三区在线观看视频 | 5a毛片| 婷婷91 | 国产精品国产三级国产在线观看 | 国产精品国产精品国产专区 | 搡老岳熟女国产熟妇 | 婷婷爱爱| 婷婷激情电影 | 91一起草| 中国a一片一级一片 | 善良的女邻居在线观看 | 强行侵犯视频在线观看 | 欧美aa视频 | 麻豆视频在线免费看 | 黄色视屏免费 | 久久免费公开视频 | 爱情岛论坛自拍 | 自拍偷拍第二页 | 日日摸日日碰夜夜爽av | 亚洲免费视频一区二区 | 白石茉莉奈中文字幕在 | 久久精品这里 | 天码人妻一区二区三区在线看 | 狼人伊人久久 | 免费在线播放视频 | www.久久| 精品一区二区三区电影 | 色爽| 青青草在线免费观看 | 美女羞羞动态图 | 日本一区二区三区久久久久 | 国产成人久久77777精品 | 丁香激情六月 | 欧美不卡在线视频 | a天堂资源| 欧美亚洲第一区 | 五十路母| 成年人三级视频 | 日韩三区在线 | 欧美在线观看视频一区二区 |