我遇到了一个有趣的练习,它说:使用 Turbo Pascal 的标准函数实现一个函数 x^y
对于integer
变量,我可以使用for
循环,但我无法理解real
在这种情况下如何使用变量。
我一直在考虑如何使用泰勒级数来做到这一点(无法理解如何将它用于求幂),我也发现x^y = exp(y*log(x))
但ln
标准函数中只有(自然对数)......
PS 我不是要你写代码:请给我建议或链接或有助于解决这个问题的东西。
我遇到了一个有趣的练习,它说:使用 Turbo Pascal 的标准函数实现一个函数 x^y
对于integer
变量,我可以使用for
循环,但我无法理解real
在这种情况下如何使用变量。
我一直在考虑如何使用泰勒级数来做到这一点(无法理解如何将它用于求幂),我也发现x^y = exp(y*log(x))
但ln
标准函数中只有(自然对数)......
PS 我不是要你写代码:请给我建议或链接或有助于解决这个问题的东西。
公式中的 log(x) 是自然对数,因此您可以使用
x^y = exp(y*ln(x))
毫无疑问。exp和ln都是标准的 Turbo Pascal 函数
(一般公式为 x^y = b^(y * x 的以 b 为底的对数)
log x base y = ln(x) / ln(y) = (log x base 10)/(log y base 10)
以下链接包含有关对数的更多信息。查看“更改基础”部分。 http://en.wikipedia.org/wiki/List_of_logarithmic_identities
您可以将底数更改为自然对数并进行相应计算。
For x = 3.2, y = 2.5,
Say 3.2^2.5 = m
ln(m) = 2.5*ln(3.2)
Hence m = exp( 2.5 * ln(3.2) )
实际上对于上述情况,您甚至不需要更改基础