我有一个公式,这个公式使用带有自定义基数的日志函数,例如基数为b且值为x的日志。在objective-c中,我知道有一些日志函数可以在没有2或10的基数和基数的情况下计算。
是否有能够使用自定义/变量库计算日志函数的函数?或者可能有另一种方法来完成这个公式。
我的公式的基本思想是这个log(1 + 0.02)(1.26825)(1 + 0.02是基数)。这应该等于12.000。
答案 0 :(得分:15)
像这样:
double logWithBase(double base, double x) {
return log(x) / log(base);
}
答案 1 :(得分:2)
您可以使用logbx = logcx / logcb
计算任意对数,其中c
是更容易获得的基数之一,例如10
或e
。
对于您的特定示例,loge1.26825 = 0.237637997
和loge1.02 = 0.019802627
。这是12.000
(在我的计算器准确度范围内):0.237637997 / 0.019802627 = 12.000326876
。
事实上,1.0212
实际上是1.268241795
,如果你使用那个值,你会更接近12:
loge1.268241795 = 0.237631528
loge1.02 = 0.019802627
0.237631528 / 0.019802627 = 12.000000197
。答案 2 :(得分:1)
Ray是对的,但这是对它的Obj-C方法修改:
-(double) logWithBase:(double)base andNumber:(double)x {
return log(x) / log(base);
}