タグ付けされた質問 「algorithm」

アルゴリズムは、問題に対する抽象的な解決策を定義する明確に定義された一連のステップです。このタグは、問題がアルゴリズム設計に関連している場合に使用します。


12
String内のJavaのhashCode()が31を乗数として使用するのはなぜですか?
Javaドキュメントによれば、オブジェクトのハッシュコードStringは次のように計算されます。 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] int算術を使用します。ここs[i]で、 は文字列のi番目の文字、文字列nの長さ、および^指数を示します。 31が乗算器として使用されるのはなぜですか? 乗数は比較的大きな素数でなければならないことを理解しています。では、なぜ29や37、あるいは97でもないのでしょうか。
480 java  string  algorithm  hash 

5
Hi / Loアルゴリズムとは何ですか?
Hi / Loアルゴリズムとは何ですか? これはNHibernateのドキュメントで見つかりました(一意のキーを生成する1つの方法、セクション5.1.4.2です)が、それがどのように機能するかについての適切な説明は見つかりませんでした。 私はNhibernateがそれを処理することを知っており、内部を知る必要はありませんが、興味があるだけです。

30
文字列を逆にする最良の方法
私はC#2.0(つまり、LINQは利用できません)で文字列逆関数を作成する必要があり、これを思いつきました: public string Reverse(string text) { char[] cArray = text.ToCharArray(); string reverse = String.Empty; for (int i = cArray.Length - 1; i > -1; i--) { reverse += cArray[i]; } return reverse; } 個人的に私はその機能に夢中ではなく、それを行うためのより良い方法があると確信しています。ある?

18
Googleはどういう意味ですか?アルゴリズムは機能しますか?
私はポートフォリオ管理ツールの内部Webサイトを開発しています。多くのテキストデータ、会社名などがあります。検索エンジンが「もしかして:xxxx」というクエリに非常に迅速に応答できるといういくつかの検索エンジン機能には本当に感動しました。 ユーザークエリをインテリジェントに取得し、生の検索結果だけでなく、「もしかして?」可能性が高い代替回答がある場合の応答など [私はASP.NETで開発しています(VB-私に対して保持しないでください!)] 更新:OK、何百万もの「無給のユーザー」なしでこれをどのように模倣できますか? 「既知」または「正しい」用語ごとにタイプミスを生成し、ルックアップを実行しますか? 他のよりエレガントな方法はありますか?

25
リンクされたリストでループを検出する方法は?
Javaでリンクされたリスト構造があるとします。ノードで構成されています: class Node { Node next; // some user data } そして、各ノードは次のノードを指しますが、最後のノードは例外で、nextはnullです。リストにループが含まれている可能性があるとしましょう。つまり、最後のノードはnullの代わりに、リストの前にあるノードの1つを参照しています。 書くための最良の方法は何ですか boolean hasLoop(Node first) true指定されたノードがループのあるリストの最初である場合、どちらが返されfalseますか?一定量のスペースと妥当な時間を取るように、どのように書くことができますか? ループのあるリストがどのようなものかを次に示します。




24
最長の固定長6整数配列
Stack Overflowの別の質問(この質問)に答えると、興味深い副問題に遭遇しました。6つの整数の配列をソートする最も速い方法は何ですか? 質問は非常に低いレベルなので: ライブラリが利用可能である(および呼び出し自体にコストがかかる)とは想定できません。プレーンなCのみです。 (コストが非常に高い)命令パイプラインが空になるのを避けるために、分岐、ジャンプ、およびその他すべての種類の制御フローの中断(&&またはのシーケンスポイントの背後にあるものなど)を最小限に抑える必要があり||ます。 部屋には制約があり、レジスタとメモリの使用を最小限に抑えることが問題です。理想的には、並べ替えが最善です。 本当にこの質問は、ソースの長さを最小化することではなく、実行時間を目標とする一種のゴルフです。マイケル・アブラッシュとその続編による『Zen of Code optimization』という本のタイトルで使用されているように、私はそれを「Zening」コードと呼んでいます。 なぜそれが興味深いのかについては、いくつかの層があります: この例はシンプルで理解しやすく、測定も簡単で、Cのスキルはそれほど必要ありません これは、問題に対して適切なアルゴリズムを選択した場合の効果だけでなく、コンパイラーと基礎となるハードウェアの効果も示しています。 これが私のリファレンス(素朴で最適化されていない)の実装とテストセットです。 #include <stdio.h> static __inline__ int sort6(int * d){ char j, i, imin; int tmp; for (j = 0 ; j < 5 ; j++){ imin = j; for (i = j + 1; i < 6 …

11
最も近い文字列の一致を取得する
複数の文字列をテスト文字列と比較し、それによく似た文字列を返す方法が必要です。 TEST STRING: THE BROWN FOX JUMPED OVER THE RED COW CHOICE A : THE RED COW JUMPED OVER THE GREEN CHICKEN CHOICE B : THE RED COW JUMPED OVER THE RED COW CHOICE C : THE RED FOX JUMPED OVER THE BROWN COW (これを正しく行った場合)「テスト文字列」に最も近い文字列は「選択C」になります。これを行う最も簡単な方法は何ですか? これをVB.net、Lua、JavaScriptを含む複数の言語に実装する予定です。この時点で、疑似コードは受け入れられます。特定の言語の例を提供できれば、これもありがたいです!

5
純粋に関数型プログラミングの効率
命令型ではなく純粋に機能的にプログラミングするときに発生する可能性がある最悪の漸近的なスローダウンが何であるかを誰かが知っていますか(つまり、副作用を許可する)。 itowlsonによるコメントからの明確化:最もよく知られている非破壊アルゴリズムが最もよく知られている破壊アルゴリズムよりも漸近的に悪い問題はありますか?

14
有向グラフでサイクルを検出するための最適なアルゴリズム
有向グラフ内のすべてのサイクルを検出するための最も効率的なアルゴリズムは何ですか? 実行する必要があるジョブのスケジュールを表す有向グラフがあります。ジョブはノードであり、依存関係はエッジです。このグラフ内の循環の依存関係につながるエラーのケースを検出する必要があります。


9
画像比較-高速アルゴリズム
私は画像のベーステーブルを作成し、新しい画像とそれを比較して、新しい画像がベースの正確な(または近い)複製であるかどうかを判断します。 たとえば、同じ画像の保存を数百回減らしたい場合は、その画像のコピーを1つ保存し、その画像への参照リンクを提供できます。新しい画像が入力されたら、既存の画像と比較して、重複していないことを確認したい...アイデアですか? 私のアイデアの1つは、小さなサムネイルに縮小してから、ランダムに100ピクセルの場所を選択して比較することでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.