【发布时间】:2015-04-25 04:22:29
【问题描述】:
先澄清一下:
- 2^3 = 8。这相当于 2*2*2。简单。
- 2^4 = 16。这相当于 2*2*2*2。也很简单。
- 2^3.5 = 11.313708...呃,这不太容易理解。
我想要的是一个简单的算法,它最清楚地显示了 2^3.5 = 11.313708。除了基本的加法、减法、乘法或除法运算符之外,它最好不要使用任何函数。
代码当然不一定要快,也不一定要短(尽管这会有所帮助)。别担心,它可以近似于给定的用户指定准确度(这也应该是算法的一部分)。我希望会有一个二进制印章/搜索类型的事情发生,因为这很容易理解。
到目前为止,我已经找到了this,但最佳答案远非从概念层面上简单理解。
答案越多越好,所以我可以尝试了解解决问题的不同方法。
我对答案的语言偏好是 C#/C/C++/Java,或者我所关心的伪代码。
【问题讨论】:
-
看起来您正在尝试理解数学本身。也许 SO 不是最好的地方。更一般地说,也许查看伪代码或算法不是要走的路。查找有关该主题的易于理解的数学文章。
-
我认为他正在寻找完全相反的东西。大多数求幂实现依赖于不容易提出的数学关系。他正在寻找一种可能不是最好的算法,但可以帮助他了解程序员如何用尽可能少的数学技巧来实现它。
标签: c# c++ c algorithm exponentiation