Ron*_*nis 6 java language-agnostic math
问候.
我有一个我觉得很贵的java方法,我试图用数学表达式替换它的一些调用.问题是,我吮吸数学.我的意思是真的很糟糕.
以下应该解释我试图利用的模式.
f(x) -> y
f(x*2) -> f(x)+1
Run Code Online (Sandbox Code Playgroud)
也就是说,每当我将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
Run Code Online (Sandbox Code Playgroud)
我目前的做法是蛮力.我循环遍历X并测试在我达到5之前我可以将它减半的次数,最后我添加6.这样做并且比调用原始方法更快.但我一直在寻找一种更"优雅"或更便宜的解决方案.
接受的答案是那个设法帮助我但没有指出我是多么愚蠢的人:)
(标题可能很糟糕,因为我不知道我在找什么)
你是否认为你所看到的基本上是除以五,找到你有两个的力量,并为这个力量加6?
"给定Y找出X的强大功能"的一般方法是使用对数.使用计算器尝试将日志64除以日志2,看看你得到6.
所以 - 除以5,取日志,除以2的对数,然后加6.
| 归档时间: |
|
| 查看次数: |
6265 次 |
| 最近记录: |