2011-07-12 33 views
6

我有一个公式,这个公式使用一个具有自定义基地的日志功能,例如日志的基数为b,值为x。在objective-c中,我知道有一些日志函数可以计算出没有2或10的碱基和碱基。用自定义基地创建一个日志功能

是否有一个函数能够使用自定义/变量基础来计算日志函数?或者可能有一种完成此公式的替代方法。

我公式的基本思想是这个log(1 + 0.02)(1.26825)(1 + 0.02是基数)。这应该等于12.000。

回答

14

像这样:

double logWithBase(double base, double x) { 
    return log(x)/log(base); 
} 
+0

感谢那些工作完全 –

1

你可以计算任意的对数与logbx = logcx/logcb,其中c是更容易获得碱如10e之一。

对于您的特定示例,loge1.26825 = 0.237637997loge1.02 = 0.019802627。这是12.000(在我的计算器的准确性范围内):​​。

事实上,1.0212实际上是1.268241795,如果您使用的是价值,你会得到更接近12:

  • loge1.268241795 = 0.237631528
  • loge1.02 = 0.019802627
  • 0.237631528/0.019802627 = 12.000000197
1

雷是正确的,但这里是它的一个对象 - 法修改:

-(double) logWithBase:(double)base andNumber:(double)x { 
    return log(x)/log(base); 
} 
+1

这是没有意义的都有这个实例方法一吨,因为它不”不要使用实例。如果你真的想要一个Obj-C方法而不仅仅是一个C函数,你可以将它作为一个MathUtils类的类方法或类似方法。 –

相关问题