gpt4 book ai didi

c - C 中 0 和 1 之间的数字幂

转载 作者:行者123 更新时间:2023-11-30 20:38:18 25 4
gpt4 key购买 nike

我正在编写一个程序来替换 math.h 的 pow() 函数。我没有使用 math.h 中的任何函数。

问题是,我可以将幂计算为整数,例如

  • 15-2

  • 45.3211

但我无法计算

  • x2.132

我的程序首先求 x 的整数幂 (x2) 并将其乘以 (x0.132)。

我知道 x0.132 是 x 的 132 次方的 1000 次方根,但我无法解出它。

如何找到 xy (0 < y < 1)

最佳答案

计算x ^ y, 0 < y < 1 :

  1. y 近似为有理分数,(a/b)

(最简单的方法:选择您想要获得足够精度的任何 b 作为常数。
然后使用:a = b * y。)

  • 使用您喜欢的任何方法(例如牛顿法)来近似 yb 根。
  • (最简单的方法:您知道它在 0b 之间,并且可以轻松判断给定值是否太低或太高。因此请保持 min从 0 开始的 和从 b 开始的 max。重复尝试 (min + max)/2,看看是否是太大或太小,适当调整 minmax。重复直到 minmax 几乎相同.)

  • 将其提高到 a 次方。
  • (可能是通过将其自身重复相乘。如果您愿意,可以优化它。例如,只需两次乘法即可计算 a^4,一次求出 a^2 code> 然后用 1 对其进行平方。这很容易推广。)

    关于c - C 中 0 和 1 之间的数字幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29571585/

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