卡马克快速平方根
2020-12-21 00:11:28    3    0    0
starryoo
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
float Q_reqrt(float number)//四倍速算数平方根 卡马克快速平方根
{
long i;
float x2,y;
constfloat threehalfs =1.5f;

x2 = number*0.5f;
y = number;
i = * ( long * ) &y;
i = 0x5f3759df - ( i>>1 );
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) );//一次牛顿迭代
y=y*(threehalfs-(x2*y*y));// 二次牛顿迭代
y=y*(threehalfs-(x2*y*y));
return1/y;
}
int main()
{
float a;
cin>>a;
cout<<Q_reqrt(a);
return0;
}


上一篇: 蚯蚓题解

下一篇: noip2017初赛某人感想

3 人读过
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论
文档导航