平方根函数如何实现?

问题描述 投票:61回答:12

平方根函数如何实现?

function math square-root
12个回答
11
投票

使用Binary Search和C ++的简单实现


0
投票

因此,如果没有关于是否使用内置的ceil或round函数的规范,这是Java中使用Newton-Raphson方法查找无符号数的平方根的递归方法。


0
投票

我也正在制作sqrt函数,100000000次迭代需要14秒,与sqrt的1秒相比还是没有什么


0
投票

遵循我在Golang中的解决方案。


6
投票

在Intel硬件上,通常是在硬件SQRT指令之上实现的。一些库仅使用直接得到的结果,一些库可能将其经过几轮牛顿优化以使其在极端情况下更加准确。


4
投票

FDLIBM(可自由分发的LIBM)有一个很好的sqrt文档版本。 e_sqrt.c


3
投票

这是牛顿算法的实现,请参见https://tour.golang.org/flowcontrol/8


1
投票

sqrt();幕后功能。


1
投票

Python的实现:


0
投票

要计算平方根(不使用内置的math.sqrt函数):


0
投票
long long int floorSqrt(long long int x) 
{
    long long r = 0;
    while((long)(1<<r)*(long)(1<<r) <= x){
        r++;
    }
    r--;
    long long b = r -1;
    long long ans = 1 << r;
    while(b >= 0){
        if(((long)(ans|1<<b)*(long)(ans|1<<b))<=x){
            ans |= (1<<b);
        }
        b--;
    }
    return ans;
}

0
投票

有些东西叫做巴比伦方法。

© www.soinside.com 2019 - 2024. All rights reserved.