gpt4 book ai didi

c - 处理 float 的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:17 26 4
gpt4 key购买 nike

四次方是指数以上的水平(例如:2^^4 = 2^(2^(2^2)) = 65536。

到目前为止,我已经找到了一种有效的四舍五入算法。

然而,虽然变量a可以是 float 或整数,但不幸的是,变量b必须是整数。

如何修改伪代码算法,使ab都可以是 float 并产生正确答案?

// Hyperoperation type 4:
public float tetrate(float a, float b)
{
float total = a;
for (i = 1; i < b; i++) total = pow(a, total);
return total;
}

为了解决这个问题,我创建了自己的自定义 power() 函数(试图避免求根和对数函数),然后成功地将其推广到乘法。不幸的是,当我随后尝试概括为四聚时,数字变成了梨形。

我希望算法能够精确到 x 位小数,而不是像维基百科那样的近似值 talks about .为了澄清,最好至少需要满足第一个 three requirements ,第四个要求可以由回答者决定。

最佳答案

base_num ^^ tetition_num =

e^( base_num * ln (e^(tetration_num * ln base_num)))

自然对数可以用泰勒级数计算到您需要的任何精度。

e^x 也可以通过泰勒级数计算到您需要的任何精度。

注意上溢/下溢,您应该能够使用上述方法处理您需要的任何值。

以防万一您需要系列,This page列出您需要的那些。在定点数学(整数,无 float )中编写了与此类似的代码后,我可以说启动和运行并不难,但你需要注意做事的顺序,否则你会数字快速溢出。


更新

事实证明,我的上述内容仅适用于某些四舍五入,因为我没有完全理解四舍五入的工作原理。傻兔子。

关于c - 处理 float 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30243311/

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