求a的n次方,要求快速演算法。
求乙個數的n(n是int型正整數)次方,比較簡單的題目,但是也有比較大的優化空間。
是求a的n次方的公式。
如果n是偶數、.....如果n是奇數、.....
可以看出是乙個遞推公式的樣子,可以用遞迴來解決。
package static_;
public class test
public static double func(int a, int exponent)
if (exponent == 0)
double d = func(a, exponent >> 1);
d = d * d;
if ((exponent & 1) == 1)
return 1;
}}
在普通的用n次乘法求a的n次方的演算法中,時間複雜度就是o(n),在本演算法中,時間複雜度是o(logn),但是也伴隨了空間複雜度o(logn)。 求n次方的演算法
今天看交大的資料結構書,看到了乙個計算n次方的好演算法,它的時間複雜度只有logn,一般我們可能用迴圈,時間複雜度是o n 當這個演算法只有o logn 確切點說是o 6logn 演算法貼來.真高興 intpower intx,intn m n inty 1 while t 1 returny 原理...
矩陣求逆的快速演算法
前 1 如果是正交矩陣,則它的轉置就是它的逆,2 boost下面有庫 ublas basic linear algebra library 基本的線性代數都有了,你去看看吧 www.boost.org3 對於2x2 3x3 公式,演算法介紹 矩陣求逆在3d程式中很常見,主要應用於求billboard...
快速冪求x的n次方
o logn 的時間複雜度求x的n次方,x為自然數,n為整數?如果 power 5 為奇數,result儲存當前的多餘的乙個4,並在返回結果時一併與結果相乘。2 10 2 2 2 2 2 2 2 2 2 2 4 5 4 4 4 4 4 4 4 4 4 16 2 16 2 16 16 256 如果 p...