http://en.wikipedia.org/wiki/Binary_GCD_algorithmバイナリGCDアルゴリズム
このWikipediaのエントリは非常に不満な意味を持っている:バイナリGCDアルゴリズムは、一度に最大60%、より効率的な標準ユークリッドアルゴリズムよりだったが、通り1998年の後半にKnuthは現代のコンピューターで効率が15%向上したと結論づけました。
さらに15年が経過しました。今日、これらの2つのアルゴリズムは、ハードウェアの進歩によってどのようにスタックしていますか?
バイナリGCDは低レベル言語でユークリッドアルゴリズムの性能を引き続き上回りますが、Javaなどの高水準言語の複雑さのために後退しますか?それとも、現代コンピューティングの違いは何ですか?
なぜ気になるのですか?私は今日、これらの1000億のように処理しなければならないことが起こりました:)コンピューティングの時代(貧弱なユークリッド)に生きるための乾杯です。
あなたはそれらをテストするためのベンチマークを持つことができます.1つのforループ(例えば1000のサイズ)で乱数のリストを作成し、次に数値計算のバイナリと他のループの両方でeuclid gcdを計算します。問題? IMO、まだ現代のコンピュータではバイナリはもっと速く、より大きい数で速くなければなりません。 –
これは、特定のOS上の特定のプロセッサ上の特定の言語をかなり代表することができます。これは一般的な数値演算であり、今日私が好んでいたのは、今日の高性能アプリケーションでの好ましいソリューションです。 – jkschneider
今日1000億ドルを費やさなければならない場合、最も効率的な解決策を議論するのに費やす時間は、単にどちらか一方を実行するよりも時間を浪費することになります。 –