2009-05-21 3 views
9

私はlogarithm + objective-cの検索を試みましたが、教師からの数学テストページ、または対数の説明です)objective-c/cocoa-touchではどのような対数関数/メソッドが利用できますか?

83912.41234のような測定値があります32.94232。私はこの巨大なスペクトルを0から100の間に押し込む必要があり、32.94232は少なくとも2より大きい何かを持っています。ここで83912.41234は100に近い値になります。したがって、対数関数は私のここの友人になると思います。

UPDATE: は、私は "すばやく開く"(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); 

しかし、 :テキストなし、コメントなし。私はそのような数学者ではない。だから、いくつかの説明、つまりどのような場合の対数、どのようにカーブのように見えるか、など...良いリンクがあるので、どんな素晴らしいリンクも高く評価されます。

+0

あなたは曲線や直線上にあるとの結果をお探しですか? – Abizern

+0

私はそれを試してみる必要がありますが、現時点では私はそれが曲線だと思います。 log2()は良いと思われますが、非常に高価な計算でもあるようです。 – Thanks

+0

どのように高価ですか? – Abizern

答えて

1

Cの標準ライブラリ関数で本を掴むのはどうですか?

そうしないと、manページを試すことができます: man 3 logf、例えば

2

のmath.hが標準で含まれています。 wikipediaページにはいくつかのドキュメントがあります。

値を縮める別の方法は、値を直線に収めることです。あなたたとえば:

y = 1.17e-3 x + 1.96 

・ホープ、このことができます:

直線方程式

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

自分の価値観の迅速な計算は次のようなものを提供します。また

+0

Wikiリンク+1は決して考えなかったでしょう –

14

、任意ベースで対数を取得:

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