实现sqrt()开方运算
来源:互联网 发布:基础货币 知乎 编辑:程序博客网 时间:2024/05/22 00:15
我们其实在初中的数学中已经用过了一种方法:二边逼近
在这里我们同样使用这种方法:二分法
设大约出了一个结果mid
那么num-p<mid*mid<num+p//这里我们取p是很小的值,因为它主要是用来控制精度的
1.若mid*mid>num+p那么就是mid大了,这时候我们取mid-=q;//
2.若mid*mid<num-p那么就是mid小了,取mid+=q;
上代码
#include<stdio.h>#include<climits>#include<algorithm>#include<stack>#include<iostream>#include<cmath>#include<set>#include<vector>#include<map>#include<queue>#include<string.h>using namespace std;double p=1.0e-7;//这个代表的是误差的范围 double q=1.0e-5;//这个是调节取值 double n; double solve(double n){ double mid=n/2.0;//取中间值 while((mid*mid<n-p)||(mid*mid>n+p))//目标是n-p<mid*mid<n+p { if(mid*mid<n-p)//过小{ mid+=q; } else mid-=q; } return mid;}int main(void){ while(cin>>n) { cout<<solve(n)<<endl; } return 0;}
0 0
- 实现sqrt()开方运算
- 巧用二分法实现数学开方(sqrt)运算
- 每天一道LeetCode-----重新实现开方运算sqrt(x),只返回整数部分即可
- 迭代法实现开方运算
- 【Java BigInteger开方sqrt的实现】
- 开方运算的DSP实现
- 整数开方 sqrt
- 正整数开方,不用sqrt
- 二分法实现数字的开方运算
- leetcode Sqrt(x) 求开方
- 位运算开方
- 开方运算的消耗
- 快速浮点开方运算
- PHP的开方运算
- 快速浮点开方运算
- 快速浮点开方运算
- 快速浮点开方运算
- 矩阵开方sqrt()和sqrtm()的区别
- 对话框添加菜单
- CCLableIBMFont 操作文本中单个字符
- OpenCv_Image与光流法中设置ROI区域
- java socket编程
- TCP/IP
- 实现sqrt()开方运算
- android上运行python
- div最小高度
- 后台管理用户权限数据库设计
- 对象引用与变量赋值
- 详解大端模式和小端模式
- 10 BindService
- java中如何判定两个对象属于同一类
- python字符串编码及乱码解决方案