c语言字符幂函数怎么编写,我如何自己编写幂函数?

7796fa0e1a07df35717c849cdff1c259.png

呼唤远方

通常pow(double, double),数学库中函数的实现基于身份:pow(x,y) = pow(a, y * log_a(x))使用此标识,您只需要知道如何将单个数字a升为任意指数,以及如何采用对数底数即可a。您已经有效地将一个复杂的多变量函数转换为一个变量和一个乘法的两个函数,这很容易实现。最常见的选择值a是e或2- e因为e^x和log_e(1+x)有一些非常漂亮的数学特性,并且2因为它具有用于浮点运算执行一些不错的性能。做这种方式的缺点是,(如果你想获得完全精确),你需要计算的log_a(x)项(以及它与产品y)比的浮点表示更高的精度x和y。例如,如果x和y是双精度数,并且想要获得高精度结果,则需要想出一些方法以更高精度的格式存储中间结果(并进行算术运算)。Intel x87格式和64位整数一样是常见的选择(尽管如果您确实想要高质量的实现,则需要执行一些96位整数计算,这在某些情况下会有些痛苦语言)。如果实施powf(float,float),则处理起来要容易得多,因为那样就可以使用double用于中间计算。如果您要使用这种方法,我建议从此开始。我概述的算法不是唯一可行的计算方法pow。它只是最适合提供满足固定先验精度范围的高速结果。它在某些其他情况下不太合适,并且比其他一些人建议的重复平方根算法肯定更难实现。如果要尝试使用重复平方[root]算法,请首先编写一个仅使用重复平方的无符号整数幂函数。一旦掌握了这种简化情况的算法,您就会发现将其扩展为处理分数指数非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值