我需要将任意数字x的幂从2减小到0. 如果x = 6,所需总和为2pow6 + 2pow5 + ..... 1。 虽然我总是可以使用Math.pow编写一个算法以减少到0--这个函数在循环中似乎臭名昭着的性能。 希望如果有人能够帮助实现相同的使用移位二元运算符 - 我听说他们比pow更高效。java中的数学公式替代
回答
2^N + 2 ^(N-1)+ 2 ^(N-2)+ ... + 2 + 1 =(2 ^(N + 1) - 1)= ((1 << (n+1)) - 1)
愚蠢的me.Sometimes技术让我们忘记数学也可能有解决方案! – IUnknown
有史以来最聪明最漂亮的答案 – Khanser
哇!干净有用! +1! – mustache1up
您不必计算它在一个循环,你正在试图计算相当于
Math.pow(2, x+1) - 1
更妙的是,你可以计算出它像torquestomp建议,这将是更快:
(1 << (x + 1)) - 1
'Math.pow'有两个参数。你不是指'Math.pow(2,x + 1) - 1'吗? –
@KlasLindbäck确切地说,谢谢 – piokuc
- 1. Java执行数学公式
- 2. 替代公式
- 3. Python中的数学公式
- 4. 代码后面的数学公式
- 5. 在数学公式中替换参数的错误
- 6. Java 1.5:数学公式分析器
- 7. 数学公式中C++
- 8. 从数学公式
- 9. jQuery数学公式
- 10. PHP数学公式
- 11. 替代常数的公式MATLAB
- 12. 在java中搜索符号形式的数学公式
- 13. 需要的数学公式
- 14. JavaScript的数学公式
- 15. 在java中使用混合数据类型的数学公式
- 16. Python代码scipy中的数学公式中的错误
- 17. Sympy替代数学表达式
- 18. 与数学表达式VIM替代
- 19. 隐式函数的FindFit - 数学公式
- 20. 公式校对和替代
- 21. Sumproduct VBA代替公式
- 22. Crystal Reports - 使用公式替代参数
- 23. 基本的数学方程式的数学到Java代码
- 24. Apache Pig中的数学公式
- 25. 用mysql中的数学公式排序
- 26. 数学公式中的错误:)
- 27. Rails中的数学公式编辑器
- 28. xml字符串中的数学公式
- 29. matlab中的符号数学公式
- 30. 坚持存储数学数据库中的数学公式
“这个功能似乎臭名昭着的性能明智的“ - 你测试过吗?你可以合理预期什么'x'的值,并且性能至关重要?你现在有什么? – thegrinner
这是一个几何级数的总和,有一个公式可以做到这一点 – BlackJoker
@thegrinner对于记录来说,一个快速的微型基准测试显示'pow(2,10)'比'1 << 10'慢了160倍。 – assylias