用来计算平方根

公式:  a¡+1 = ( a¡ + n / a¡ ) / 2

介绍:

  ai :  上一个精度的数

a¡+1 :  下一个精度的数

n :  待计算的数

注释:

这个方法可以获得越来越精确的数值

时间: 2024-12-18 03:57:07

用来计算平方根的相关文章

迭代法计算平方根

具体的做法如下: 为了计算数字S的平方根,从选择一个任意的猜测值g开始.一种可能就是将g设为S,尽管也可以选择任何其他的整数值. 如果猜测值g足够接近正确的平方根,算法结束,函数将g作为结果返回. 如果g不够精确,用g和S/g的平均值作为新的猜测值.因为这两个值中的一个小于确切的平方根,另一个则大于确切的平均值,                                                      选择平均值会使你得到一个更接近正确答案的值. 把新的猜测值存入变量g,从第二步

Scala程序集 牛顿法计算平方根

牛顿法是一个迭代算法,原理用一句话就可以概括:如果 a * b = n,那么 n的平方根一定在a与b之间 换句话说 (a + b) /2 ,一定比a更精确 package puzzles.sqrt /**  * Created by Bo on 2015/1/1.  */ import scala.math.abs object Newton extends  App{   def sqrt(num: Double): Double = {     def iter(guess: Double)

软件快速计算平方根与平方根的倒数

#include<iostream> #include<cmath> using namespace std; float Sqrt(float x); float InvSqrt(float x); int main(void) { system("color F0"); cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(10); //快速算法 double result1,res

c#第一个程序-计算平方根

上课教的内容.做笔记了. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 平方计算器 { public partial class Form1 : Form {

python 使用二分法计算平方根

from math import sqrt def mysqrt(num,small):     assert num>0     assert small>0     low = 0.0     high = max(num,1)     loops=1     while True and loops<=100:         a = (high + low) / 2         test = a ** 2         if abs(test-num)<small:

平方根(sqrt)算法

最近听说开平方算法挺难写,自己思考一下确实这些库函数只是一直在用,但是很少去思考如何实现的,sqrt在排序中使用频率非常的高,所以就研究了一下.大概有三种实现方式. 一.用二分的方法 每次用中间数就试,如果大就到左区间选取中间数试,如果小就到右区间找中间数试,采用不断逼近的方式计算平方根,这种方式迭代次数有点多,且每次试验都要进行运算,效率不是很高,但是思路简单,巧妙的运用了二分的方法. #define eps 0.00000001 float SqrtByBisection(float n)

手算平方根的正确方法

手算平方根的「正确」方法,是什么方法?如果你认为是牛顿迭代法的话,你可以亲自试一下,看看效果如何: (原帖 kz3007407872, 鉴于百度贴吧的帖子是公开的,我就不打码了) 其实牛顿迭代法非常好,在电脑上快得飞起.但是手算就不行了. 那么「正确」的方法是什么呢?是这个: (原帖同上) 说得神神叨叨的,还能开无限小数,到底是什么方法?帖子里没说. 不过,幸运的是,我有一天翻 Wiki 的时候,碰巧翻到了这个方法.本文将详细介绍这个方法. \(2\) 的算术平方根是多少?是 \(\sqrt{2

[转]快速平方根算法

在3D图形编程中,经常要求平方根或平方根的倒数,例如:求向量的长度或将向量归一化.C数学函数库中的sqrt具有理想的精度,但对于3D游戏程式来说速度太慢.我们希望能够在保证足够的精度的同时,进一步提高速度. Carmack在QUAKE3中使用了下面的算法,它第一次在公众场合出现的时候,几乎震住了所有的人.据说该算法其实并不是Carmack发明的,它真正的作者是Nvidia的Gary Tarolli(未经证实). // // 计算参数x的平方根的倒数 // float InvSqrt (float

平方根倒数速算法(卡马克开方法)

平方根倒数速算法(Fast inverse square root),经常和一个十六进制的常量 0x5f3759df联系起来.该算法被用来快速运算平方根倒数,速度是 float(1/sqrt(x)) 方法的4倍.该算法大概由上个世纪90年代的硅图公司开发出来,后来出现在John Carmark的Quake III Arena的源码中. 这是一个古老的算法,最早的讨论见于2001年中国的CSDN论坛上.并且该段代码可能已经不适用于当代的64bits机器,因为现在的64bits的机器上 long 型