タグ付けされた質問 「numerical-algorithms」

4
フロートの不正確さが原因の不平等
少なくともJavaでは、このコードを書くと: float a = 1000.0F; float b = 0.00004F; float c = a + b + b; float d = b + b + a; boolean e = c == d; の値はeeeなり。これは、数値を正確に表現する上でフロートが非常に制限されているという事実が原因であると考えています。しかし、なぜの位置を変えるだけでこの不平等が生じるのか理解できません。falsefalsefalseaaa 以下のように、3行目と4行目の両方で sを1 に減らしましたが、の値はなり。bbbeeetruetruetrue float a = 1000.0F; float b = 0.00004F; float c = a + b; float …

3
逐次乗算よりも効率的な並列行列指数アルゴリズムはありますか?
実数の行列の累乗(正の整数)を見つけるために1つ必要です。効率的な行列乗算アルゴリズムはたくさんありますが(たとえば、一部の並列アルゴリズムはCannonのDNSです)、行列の能力を正確に見つけることを目的としたアルゴリズムであり、行列乗算の逐次実行よりも効率的ですか?特に並列アルゴリズムに興味があります。

1
ナイーブベイズの実装
私は、ラプラシアン平滑化によるテキスト分類のための単純ベイズアルゴリズムを実装しています。私が抱えている問題は、多くの小さな分数を乗算しているため、確率がゼロに近づくことです。したがって、確率は最終的にゼロになります。これは、ドキュメントとトレーニングセット内にいくつかの単語があるためです。 このため、テキストを分類することができません。この問題を回避する方法はありますか?私の実装で何か問題がありますか?

2
任意精度の整数平方根アルゴリズム?
nビット整数の平方根のフロアを計算するための既知のサブ二次アルゴリズムはありますか? 素朴なアルゴリズムは次のようなものです def sqrt(x): r = 0 i = x.bit_length() // 2 while i >= 0: inc = (r << (i+1)) + (1 << (i*2)) if inc <= x: x -= inc r += 1 << i i -= 1 return r これにはO(n)反復が必要であり、各反復にはO(n)時間である加算が含まれるため、O(n^2)全体として時間です。もっと速いものはありますか?乗算の場合、2次時間よりも優れた特別なアルゴリズムがあることは知っていますが、平方根については何も見つかりません。

3
線形方程式系を解くための最速の方法
私は、10000までの未知数を含む最大10000の方程式のシステムをできるだけ速く(できれば数秒以内に)解かなければなりません。ガウスの消去はそのためには遅すぎることを知っているので、どのアルゴリズムがこのタスクに適していますか? すべての係数と定数は、pを法とする非負の整数です(pは素数)。ソリューションは1つだけであることが保証されています。pを法とする解が必要です。

1
メディアントを使用したブラケット検索の複雑さは何ですか?
Rekoデコンパイラー用に作成したアルゴリズムの複雑さを推定しようとしています。ここで、コンパイラーが定数による整数除算に行った変換を「取り消す」ようにしています。コンパイラーは除算を整数の乗算とシフトに変換しました:、ここではコンピューターのマシンワードのビット数です。結果の定数乗算は、ほとんどの現代的なアーキテクチャでの除算よりもはるかに高速ですが、元のコードに似ていません。(X * ⌊ 2 β / N ⌋ )> > β βx/nx/nx / n(x∗⌊2β/n⌋)>>β(x∗⌊2β/n⌋)>>β(x * \lfloor 2^\beta / n \rfloor) >> \betaββ\beta 説明するには:Cステートメント y = x / 10; Microsoft Visual C ++コンパイラによって、次のアセンブリ言語にコンパイルされます mov edx,1999999Ah ; load 1/10 * 2^32 imul eax ; edx:eax = dividend / 10 * 2 ^32 …

2
「三分探索」は、実際の区間で単峰関数を最適化するアルゴリズムの適切な用語ですか?
実際の区間で定義された単峰関数を最適化したいとします。Wikipediaでternary searchという名前で説明されている有名なアルゴリズムを使用できます。 間隔を繰り返し半分にするアルゴリズムの場合、二分探索という用語を離散問題用に予約し、それ以外の場合は二分法という用語を使用するのが一般的です。この慣例を外挿すると、三分割法という用語が私の問題を解決するアルゴリズムに適用されるのではないかと思います。 私の質問は、アルゴリズムが継続的な問題に適用される場合でも、三元検索という用語を適用することは、学者の間で一般的であり、たとえば上級論文で使用しても安全かどうかです。これには信頼できる情報源が必要です。三分割法という用語が実際に存在するかどうかにも興味があります。

1
3次スプラインの最大曲率を計算する効率的な方法
2D 3次スプライン(ベジェ)があり、そのスプラインを離散化したポリゴンラインがあります。 滑らかな表現または離散ポリラインのいずれかを使用して、スプラインの最大曲率を計算する方法を実装するための効率的で簡単な方法はありますか?それはゲーム用であるため、正確である必要はありません。約10%のエラーは完全に許容されます。 別の言い回し:知りたいのですが、スプラインに沿って一定の速度で運転している車を運転する場合、ハンドルを切るためにハンドルを回さなければならない最大の度合いはどのくらいでしょうか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.