不用sqrt()函数,如何求平方根
2017-03-13 21:44
274 查看
1:最好的是牛顿迭代法
2:其次是二分法
2:其次是二分法
a=s(19) #不用函数实现开方 def s(n): #循坏法 if n<0: return -1 else: for i in range(1,n,0.001): #python 的range不能使用小数 while(i*i-n>1e-9)or(i*i-n<-1e-9): continue return i #失败 def s(n): #二分法,构造函数f(x)=x*x-n,然后构造上下界[1,n],比较mid=(start+end)/2.0,比较mid*mid-n和极小值的大小1e-9,\ #如果大于0,则将上界变小,end=mid,如果小于0,说明mid小于正确值,应该将下界变大,start=mid #19只需要36次 i=0 if n<0: return -1 else: start=1 end=n mid=(start+end)/2.0 while (mid*mid-n)>1e-9 or ((mid*mid-n)<-(1e-9)): i=i+1 print i,mid if (mid*mid-n>1e-9): end=mid elif(mid*mid-n<-1e-9): start=mid mid=(start+end)/2.0 print i,mid return mid #失败 def s(n): #最好的用牛顿迭代法,19只需要6次 i=0 if n<0: return -1 else: start=1 while(start*start-n)>1e-9 or ((start*start-n)<-(1e-9)): start=(start+n/start)/2.0 i=i+1 print i,start return start
相关文章推荐
- 不用sqrt()函数,如何求平方根
- 不用sqrt如何在C语言中开平方
- sqrt函数分析,sqrt()如何实现的?
- 用C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数?(不用sizeof()函数求当前主机上的一个int占用几个字节)
- java中的开方Math.sqrt(n)函数和平方{a的b次方Math.pow(a, b)}
- [C++] 如何不用虚函数实现多态
- [C++] 如何不用虚函数实现多态
- 如何理解softmax(柔性最大),为什么不用别的归一化的函数?
- java__X的平方根。设计函数int sqrt(int x),计算 xx 的平方根。
- [C++] 如何不用虚函数实现多态
- 如何在函数中不用return语句返回多个值
- [数学函数]sqrt()—开方函数(取平方根值)
- ASP 时间函数及如何获取服务器时间的写法
- postgreSQL中函数json_populate_recordset的参数null::myrowtype如何使用
- linux下C语言如何得到调用我的函数的文件名和行号
- 如何使用select()函数
- 【more effective c++读书笔记】【第5章】技术(7)——让函数根据一个以上的对象类型来决定如何虚化(1)
- STM32是如何进入中断函数xxx_IRQHandler的
- 如何让API回调你的VC类成员函数而不是静态函数
- javascript字符串替换函数如何一次性全部替换掉