快速冪 快速相關聯等 的理解,

2021-10-02 10:08:34 字數 950 閱讀 3534

記錄一下當時是怎麼理解的,以備後面忘記可以回顧。

快速冪普通求 ab, 就是讓aaa…乘b次,時間複雜度為o(n)…

快速冪 能快到o(log n).. 原理是

比如 a5。 5 二進位制為 0101;a5=a^ (2^ 01 +2^10 +2 ^2*1) ;

5 = 20*1 +21*0 +2 2*1

a^5^= a^ 2^0^*1  *  a^ 2^1^*0    *  a^2 ^2^*1 ;
int  mod(int a,int b)

a = a*a; //a*a =a^2,表示下次二進位制走到第二位時a的值

// 對應二進位制四位0000 a->a^2->a^4->a^8

b>>=1; //二進位制右移一位,倒數第二個現在是倒是第乙個,然後重複while

}

return res;

}

一般用到快速冪的情況, 有些演算法題 時間限制,取模題 相乘超過long long 等。。

tepedef long long ll;

ll res=1;

while(b>0)

a = a*a%n;

b>>=1;

}return res;

}

再補

快速乘 和 基本快速冪一樣用法

比如 a5 = a20

1 + a21

0 + a22*1

int pow_mul(int a,int b)

a = a+a; //相加 2a->4a->8a;

b >>= 1;

}return res;

}

初學 快速冪 的理解

部落格停了差不多三個月,雖然這一段時間在學演算法,但從來沒有寫部落格。今天看了一上午的快速冪,突然想寫寫部落格,增加一下自己的記憶!這個博文知識簡單介紹一下演算法中取餘的原因 1至於快速冪的概念不詳細記錄了。當我們想求a的b次冪對c取余時,我們會直接想到用這個演算法 int ans 1 for i ...

快速冪的演算法理解

一直聽說過快速冪,一直沒有用過。這下稍微有了點空閒時間,做個筆記自己看看。求乙個數的n次冪常見的是n次迴圈。例如。double power double base,int exponent while exponent return flag?1 total total 複雜度是o n 快速冪演算法...

對快速冪的理解 C )

時間複雜度是o n 級別,而快速冪能做到o logn 其實b是可以拆成二進位制的,該二進位制數第i位的權 值 為2 i 1 比如說b 11時 11的二進位制是1011,這三項 好像 不怎麼不好求 指數 你可以用longlong 或者用mod也可以 return ret 講到二進位制 一般都會想到這兩...