1樓:匿名使用者
最基本的方法:把b分成整數部分和小數部分。整數部分從右往左數的第n位(二進位制,n從0開始算)對應了a的2 ^ n次方;小數部分從左往右數的的第n位對應了a的2 ^ -(n + 1)次方。
結果初始值為0,如果某一位是1,則結果乘上其所對應a的x次方;否則不乘。
比如b的二進位制表示是101.01 結果就是 a ^ 4 * a ^ 1 * a ^ (1/4)
----
不過開方還是問題,這樣貌似不行+_,+b
----
wangtk1982 的方法玩兒過火了...
硬要弄的話我那個方法配上開方就可以了。遠比那樣繞彎子效率高。而開方最好用牛頓迭代算出倒數,這樣可以避免大量不必要的除法。
不過這樣應該不是合理的實現。vc實現乘方貌似根本沒用開方。
2樓:匿名使用者
#include
const int n=100;
double coef(int n)
//x^n的係數
double horner(double x)double sqrt(double b)return x;
}//開平方
double ln(double x)//ln(1+x)=x-x^2/2+x^3/3-x^4/4……
double log(double m,double base=10)
double exp(double x)
return sum;
}//e^x≈1+x+x^2/2!+x^3/3!+……+x^n/n!
double pow(double m,double n)int main()
3樓:匿名使用者
a^b=exp(blna)
exp和ln函式應該允許用吧.
如果老師bt到任何數學函式都不允許用的話,你就可以用泰勒式,先求出lna,再求冪.
4樓:匿名使用者
double pow(double x,double y)就是求x的y次方,計算x^y的結果;
如果你想求x的y次方(x^y),只需要用乙個for迴圈即可。
列如:求x的16次方
#include
void main()
就你的程式改一改,可以實現你的要求:
#include
int fun(int b,int p)
(改動的)
else
; (改動的)
} return sum; }}
void main()
剛剛執行過,可以實現你的要求
5樓:檀品梁流麗
用基本的數學操作,一項一項算出來
然後累加到一起就可以了。
指數函式的底數為什麼不能小於指數函式的底數為什麼不能小於
1,首先考察函式f x 0 x的特性 定義域 0,值域 2,f x 0 x與g x a x a 0 在很多特性上差異巨大,完全不能和 g x a x a 0 歸為一類。3,為方便討論,在定義指數函式時,乾脆規定a 0。否則的話,每次提到指函式,都必須分兩種情況。這好比 30個人類和乙個猴子在乙個班共...
指數函式中常數a為什麼不能為負,指數函式次數為什麼可以是零,a為什麼不能是負數
如果a小於0的話,函bai 數值無du意義。如果a 0,那麼指數zhix 0的時候,dao函回數值等於1,x 0的時候,函式式無答意義。如果a 0,那麼a的x次方這個冪將不連續,且出現無法確定是否有意義的不定點。因為負數不能開偶數次方,所以當x是最簡分數的時候,分母為偶數的指數將使得a的x次方無意義...
指數函式和對數函式的關係指數函式和對數函式有什麼關係?
指數 4 64 算的是 4 的 3 次方 對數 log 64 3 算的是 4 的 次方 64它們是互為逆運算的 inverse operation 在初等數學中還不能體會出對數化成指數,指數化成對數的靈便。如 y 2 x e ln2 x e xln2 dy dx ln2 e xln2 ln2 2 2...