當前位置:首頁 » 操作系統 » 冪對演算法

冪對演算法

發布時間: 2022-03-07 11:01:18

❶ 快速冪演算法原理

快速冪
顧名思義,快速冪就是快速算底數的n次冪。其時間復雜度為 O(log2N), 與樸素的O(N)相比效率有了極大的提高。

中文名
快速冪
外文名
Fast Power
時間復雜度
log(n)
性質
快速算底數的n次冪
快速
導航
實現

代碼比較
原理
快速冪演算法的核心思想就是每一步都把指數分成兩半,而相應的底數做平方運算。這樣不僅能把非常大的指數給不斷變小,所需要執行的循環次數也變小,而最後表示的結果卻一直不會變。
讓我們先來看一個簡單的例子:
3^10=3*3*3*3*3*3*3*3*3*3
3^10=(3*3)*(3*3)*(3*3)*(3*3)*(3*3)
3^10=(3*3)^5
3^10=9^5
9^5=(9^4)*(9^1)
9^5=(9^4)*(9^1)
9^5=(6561^1)*(9^1)
以下以求a的b次方來介紹[1]
把b轉換成二進制數。
該二進制數第i位的權為
例如

11的二進制是1011

因此,我們將a11轉化為算
實現
快速冪可以用位運算來實現
b and 1{也就是取b的二進制最低位(即第0位)判斷b是否為奇數,是則為1}
b shr 1{就是去掉b的二進制最低位(即第0位)}
C++實現為
b & 1//取b二進制的最低位,判斷和1是否相同,相同返回1,否則返回0,可用於判斷奇偶
b>>1//把b的二進制右移一位,即去掉其二進制位的最低位
以下為pascal的實現:
var a,b,n:int64;
function f(a,b,n:int64):int64;
var t,y:int64;
begin
t:=1; y:=a;
while b<>0 do begin
if(b and 1)=1 then t:=t*y mod n;
y:=y*y mod n;{這里用了一個技巧,y*y即求出了a^(2^(i-1))不知道這是什麼的看原理
a^(2^(i-1))*a^(2^(i-1))=a^(2^i)
而且一般情況下a*b mod c =(a mod c)*(b mod c) mod c}
b:=b shr 1;{去掉已經處理過的一位}
end;
exit(t);
end;
begin
read(a,b,n);{n是模}
writeln(f(a,b,n));
end.
[1]
以下為C的實現,為了方便與pascal的對照,變數全部與上面相同.可以對照查看。
遞歸版:[2]
ll pow(ll a,ll i){
if (i==0) return 1;
int temp=pow(a,i>>1);
temp=temp*temp%MOD;
if (i&1) temp=(ll)temp*a%MOD;
return temp%MOD;
}
非遞歸版:
ll f(ll a,ll b,ll n){
int t,y;
t=1; y=a;
while (b!=0){
if (b&1==1) t=t*y%n;
y=y*y%n; b=b>>1;
}
return t;
}

❷ 關於冪運算的演算法

2^39=(2^10)^4/2

❸ 冪運算所有的運演算法則。

1、同底數冪的乘法:

aᵐ·aⁿ·aᵖ=aᵐ⁺ⁿ⁺ᵖ(m, n, p都是正整數)。

2、冪的乘方(aᵐ)ⁿ=a(ᵐⁿ),與積的乘方(ab)ⁿ=aⁿbⁿ

3、同底數冪的除法:

(1)同底數冪的除法:aᵐ÷aⁿ=a(ᵐ⁻ⁿ)(a≠0, m, n均為正整數,並且m>n)

(2)零指數:a⁰=1 (a≠0);

(3)負整數指數冪:a⁻ᵖ= (a≠0, p是正整數),當a=0時沒有意義,0⁻²,0⁻²都無意義。

3、負指數冪

當底數n≠0時,由於n⁰÷nᵃ=1÷nᵃ=1/nᵃ,根據冪的運算規則可知,n⁰÷nᵃ=n⁰⁻ᵃ=n⁻ᵃ=1/nᵃ

因此定義負指數冪如下:a⁻ᵖ=1/aᵖ,a≠0。

❹ 求取曲線的冪函數的演算法公式

y=αx^(-β)對兩邊同取以x為底的log
logx(y)=logx(a)+b

ln(y)/ln(x)=ln(a)/ln(x)+b
ln(y)=ln(a)+b*ln(x)
令X=ln(x), Y=ln(y)
有Y=b*X+ln(a)
之後按線性擬合方法擬合

❺ 冪模運算(演算法)的小問題

換一種形式
把和換成1+4*(1+4*(1+4*(1+4*(。。。))))
然後最內層的小括弧的數據對10007取余
慢慢退到最外層就是結果了
如果直接先把和求出來 就溢出了

❻ 實對稱距陣指數冪的演算法

如果有n階矩陣A,其各個元素都為實數,矩陣A的轉置等於其本身(AT = A) ,則稱A為實對稱矩陣。

如果有n階矩陣A,其各個元素都為實數,且aij=aji i,j=1,2,...,n(即
這兒的T表示轉置),則稱A為實對稱矩陣。

特點

1.實對稱矩陣A的不同特徵值對應的特徵向量是正交的。
2.實對稱矩陣A的特徵值都是實數,特徵向量都是實向量。
3.n階實對稱矩陣A必可對角化,且相似對角陣上的元素即為矩陣本身特徵值。
4.K重特徵值必有K個線性無關的特徵向量,或者說必有秩r(λE-A)=n-k,其中E為單位矩陣。
5.實對稱矩陣的所有特徵值都是實數。

❼ 次方的快速演算法

次方有兩種快速演算法:

第一種是直接用乘法計算,例:3⁴=3×3×3×3=81。

第二種則是用次方階級下的數相乘,例:3⁴=9×9=81

次方最基本的定義是:設a為某數,n為正整數,a的n次方表示為aⁿ,表示n個a連乘所得之結果,如2⁴=2×2×2×2=16。次方的定義還可以擴展到0次方和負數次方等等。

負數次方

由5的0次方繼續除以5就可以得出5的負數次方。

例如: 5的0次方是1 (任何非零數的0次方都等於1。)

5的-1次方是0.2 1÷ 5 =0.2

5的-2次方是0.04 0.2÷5 =0.04

因為5的-1次方是0.2 ,所以5的-2次方也可以表示為0.2×0.2=0.04

5的-3次方則是0.2×0.2×0.2=0.008

由此可見,一個非零數的-n次方=這個數的倒數的n次方。

(7)冪對演算法擴展閱讀:

0的次方

0的任何正數次方都是0,例:0⁵=0×0×0×0×0=0

0的0次方無意義。

一個數的0次方

任何非零數的0次方都等於1。原因如下:

通常代表3次方

5的3次方是125,即5×5×5=125

5的2次方是25,即5×5=25

5的1次方是5,即5×1=5

由此可見,n≧0時,將5的(n+1)次方變為5的n次方需除以一個5,所以可定義5的0次方為:

5 ÷ 5 = 1。

❽ 高中數學冪的演算法

❾ 冪的演算法

int fun(int a, int b)

{
int result = 1;

for(int i = 0; i < b; i++)

result *= a;

return result;

}

❿ 求冪函數演算法怎麼寫最快

用二分求冪的時間復雜度是 log(n),採用位運算的二分法應該是最快的。網路搜「二分求冪演算法」有大量代碼,就不復制粘貼了。

熱點內容
演示源碼 發布:2024-09-24 07:13:20 瀏覽:168
android載入地圖api 發布:2024-09-24 07:04:55 瀏覽:521
discuz資料庫安裝 發布:2024-09-24 06:57:19 瀏覽:795
sql查詢一列 發布:2024-09-24 06:42:14 瀏覽:654
我的世界伺服器music指令 發布:2024-09-24 06:16:58 瀏覽:729
路由器怎麼設置上網參數配置 發布:2024-09-24 06:16:17 瀏覽:557
老式電腦配置如何設置 發布:2024-09-24 06:07:08 瀏覽:461
將文件夾存到蘋果手機 發布:2024-09-24 06:05:33 瀏覽:967
sqlserver最大連接數 發布:2024-09-24 05:57:00 瀏覽:164
數碼相機編程 發布:2024-09-24 05:21:04 瀏覽:939