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;
}
}
}
测试码就不发啦!