gpt4 book ai didi

function - 平方根函数是如何实现的?

转载 作者:行者123 更新时间:2023-12-02 19:22:45 25 4
gpt4 key购买 nike

平方根函数是如何实现的?

最佳答案

使用 Binary Search 进行简单实现使用 C++

double root(double n){
// Max and min are used to take into account numbers less than 1
double lo = min(1, n), hi = max(1, n), mid;

// Update the bounds to be off the target by a factor of 10
while(100 * lo * lo < n) lo *= 10;
while(0.01 * hi * hi > n) hi *= 0.1;

for(int i = 0 ; i < 100 ; i++){
mid = (lo+hi)/2;
if(mid*mid == n) return mid;
if(mid*mid > n) hi = mid;
else lo = mid;
}
return mid;
}

请注意,while循环在二分搜索中最常见,但我个人更喜欢在处理十进制数时使用for,它可以节省一些特殊情况的处理并变得非常准确由像 1000 甚至 500 这样的小循环产生的结果(两者都会为几乎所有数字提供相同的结果,但只是为了安全起见)。

编辑:看看这个 Wikipedia article用于专门计算平方根的各种“特殊用途”方法。

编辑 2:应用 @jorgbrown 建议的更新来修复输入小于 1 时的函数。此外,应用优化以使目标根的边界扩大 10 倍

关于function - 平方根函数是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com