2009-03-26 6 views
3

この問題について私が知っている唯一のアルゴリズムは、ニュートンの方法です(推測し、それが十分になるまで改善してください)。数値の平方根を求めるアルゴリズムはありますか?

その他のアイデア(好きな言語を使用してください)

PS:もちろん、これについてのユースケースはありません。私は学問的な理由からそれを研究しています。

答えて

10

常にニュートン法の効率的なバリエーションであるJohn Carmack methodがあります。

+3

。 http://www.beyond3d.com/content/articles/8/ –

+3

しかし、あなたはそれを反転する必要があります。 – Tordek

+0

またはxで掛けます。 x/sqrt(x)= sqrt(x) – Crashworks

0

アルゴリズムをMethods of computing square rootsにチェックしたい場合があります。

これはニュートン法の速いCログベース2実装です:それはカーマックさんではありません

double sqrt(const double x) 
{ 
    union 
    { 
    int i; 
    double x; 
    } u; 

    u.x = x; 
    u.i = (1<<29) + (u.i >> 1) - (1<<22); 
    return u.x; 
} 
関連する問題