gpt4 book ai didi

c++ - 如何计算减少的值何时达到某个点?

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:28 25 4
gpt4 key购买 nike

我肯定我以前在学校学过这个,但我不记得这个东西叫什么了。

我有任意数字,我需要知道我可以将它乘以 0.9(或任何其他 0-1 的值)多少次,直到原始数字剩下不到 x。

在循环格式中它看起来像:

num = 4654;
mult = 0.9;
limit = 140;
count = 0;
while(num >= limit){
num *= mult;
count++;
}

但这甚至可以在没有循环的情况下完成吗?有对数的东西?

最佳答案

注意

num * (0.9)^k <= limit

是您希望满足的某个整数的不等式 k ,你寻找最小的这样的 k .然后

(0.9)^k <= limit / num

k * log(0.9) <= log(limit / num)

这样

k >= log(limit / num) / log(0.9)

不平等因为log(0.9) < 0而逆转.因此,取最小的整数k大于 log(limit / num) / log(0.9) .

所以,取log(limit / num) / log(0.9)的上限.

当然,这可以通过替换 0.9 来概括通过 r其中 r是你的乘数 (0, 1) .

关于c++ - 如何计算减少的值何时达到某个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5251906/

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