1、開根號:
1.1、jdk自帶方法:Math.sqrt()
1.2、用逼近法求:
/**
* 功能:開根號計算
* @author Smilexs
* @param x
* @return 根號x
*/
public double kaiGengHao(double x){
double a=1;//猜一個數
double b;
for(;;){
b = x/a;//a和b非常相近時,就可認爲是其根號值
if(Math.abs(a-b)<1e-6){
return a;
}
a=(a+b)/2;//取區間中間值,逐漸逼近
}
}
2、已知x的x次冪的值求x
/**
* 功能:求x ,滿足:x^x= value
* @author Smilexs
* @param value
* @return mid即x
*/
public double x_power(double value){
double a=1;//假設下區間值
double b=value;//[a,b]是一個區間
double result;
for(;;){
double mid=(a+b)/2;//區間中間值
result=Math.pow(mid, mid);//mid^mid 趨於value就返回
if(Math.abs(result-value)<1e-6){
return mid;
}
//縮小區間
if(result<value){
a=mid;
}
else {
b=mid;
}
}
}
測試碼就不發啦!