【发布时间】:2009-05-21 08:55:25
【问题描述】:
我试过搜索对数 + 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 );
但是:没有文本,没有 cmets。我不是那种数学狂。所以一些描述会很好,即什么情况下的对数,曲线的样子等等......所以任何伟大的链接都非常感谢!
【问题讨论】:
-
您在寻找曲线还是直线上的结果?
-
我必须尝试一下,但目前我猜它是一条曲线。 log2() 看起来不错,但它也似乎是一个非常昂贵的计算。
-
当我使用 log2() 时,性能似乎急剧下降。但不能 100% 确定是 log2() 的错。虽然看起来很像,因为当我不使用它,只做一个 x * 0.00412 + 2 时,感觉性能更好。
-
测量,测量,测量。 Ue Shark 或 Instruments 告诉你到底发生了什么。
-
除此之外,您使用的任何版本的日志都会得到可比较的结果,因为它们是单调函数。
标签: objective-c cocoa-touch math logarithm