Objective-c / cocoa-touch中有哪些对数函数/方法?

时间:2009-05-21 08:55:25

标签: objective-c cocoa-touch math logarithm

我尝试过搜索logarithm + objective-c,但我得到的只是教师的数学测试页,或解释对数是什么;)

我有一些测量值,如83912.41234,其他测量值为32.94232。我需要将这个巨大的光谱压缩到0到100之间,并且32.94232至少应该大于2,其中83912.41234将接近100.所以我认为对数函数将是我的朋友。

更新: 我通过“快速打开”(在Xcode中非常好的命令:SHIFT + CMD + D)遇到了math.h文件,并且出现了很大的惊喜:

extern double log ( double );
extern float logf ( float );

extern double log10 ( double );
extern float log10f ( float );

extern double log2 ( double );
extern float log2f ( float );

extern double log1p ( double );
extern float log1pf ( float );

extern double logb ( double );
extern float logbf ( float );

但是:没有文字,没有评论。我不是一个数学怪人。因此,一些描述会很好,即什么样的对数适用于什么情况,曲线如何,等等...所以任何伟大的链接都非常受欢迎!

3 个答案:

答案 0 :(得分:15)

此外,获得具有任意基数的对数:

float logx(float value, float base) 
{
   return log10f(value) / log10f(base);
}

答案 1 :(得分:2)

math.h是一个标准包含。 wikipedia页面有一些文档。

“挤压”值的另一种方法是使您的值适合直线。例如:

直线方程

y = mx + c
y = 'squished' value.
x = The value you want to squish
m = Gradient of the line
c = intercept on the y axis

快速计算您的值会产生类似的结果:

y = 1.17e-3 x + 1.96

希望这有帮助。

答案 2 :(得分:1)

如何抓取有关C标准库函数的书?

否则,您可以尝试手册页: man 3 logf,例如