gpt4 book ai didi

java - 计算除以二的次数

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:47 24 4
gpt4 key购买 nike

问候。

我有一个 java 方法,我认为它很昂贵,我正在尝试用数学表达式替换对它的一些调用。问题是,我数学很烂。我的意思是真的糟透了。

下面应该解释我试图利用的模式。

f(x)   -> y
f(x*2) -> f(x)+1

也就是说,每当我将 x 的值加倍时,y 的值将比 x/2 大 1。以下是一些示例输出:

f(5)   -> 6
f(10) -> 7
f(20) -> 8
f(40) -> 9
f(80) -> 10
f(160) -> 11
f(320) -> 12

我目前的方法是蛮力。我在 X 上循环并测试在达到 5 之前我可以将它减半多少次,最后我添加 6。这有效并且比对原始方法的调用更快。但我一直在寻找更“优雅”或可能更便宜的解决方案。

接受的答案是那些设法帮助我而没有指出我有多愚蠢的人:)

(标题可能很烂,因为我不知道我在找什么)

最佳答案

您是否考虑过,您所看到的本质上是除以 5,求出您拥有的 2 的多少次方,然后在该次方的基础上加上 6?

“给定 Y 找出 X 的幂”的一般方法是使用对数。使用计算器尝试将 64 的对数除以 2 的对数,看看得到 6。

所以 - 除以五,取对数,除以二的对数,然后加六。

关于java - 计算除以二的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4488389/

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