問題タブ [algorithm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
22699 参照

c# - C#で一致するファジーテキスト(文/タイトル)

ねえ、私はLevenshteinsアルゴリズムを使用して、ソース文字列とターゲット文字列の間の距離を取得しています。

また、0から1までの値を返すメソッドがあります。

しかし、これは私にとって十分ではありません。2つの文を一致させるためのより複雑な方法が必要だからです。

たとえば、いくつかの音楽に自動的にタグを付けたい、オリジナルの曲名を持っている、スーパー、クオリティ、2007、2008などの年などのゴミのある曲があります。また、一部のファイルにはhttp://trashだけがあります。 .thash..song_name_mp3.mp3、その他は正常です。私は今よりも完璧に機能するアルゴリズムを作成したいと思っています。多分誰かが私を助けることができますか?

これが私の現在のアルゴリズムです:

これは正常に機能しますが、場合によっては、一致するはずの多くのタイトルが一致しないことがあります...ウェイトなどを操作するには、何らかの式が必要だと思いますが、1つは考えられません。

アイデア?提案?アルゴス?

ちなみに、私はすでにこのトピックを知っています(私の同僚はすでにそれを投稿していますが、この問題の適切な解決策を見つけることはできません。): 近似文字列マッチングアルゴリズム

0 投票する
6 に答える
28847 参照

algorithm - リンクリストからランダムな要素のセットを効率的に選択する

長さの数のリンクリストがあるとしますNNは非常に大きく、の正確な値は事前にわかりませんN

リストからk完全に乱数を返す関数を最も効率的に作成するにはどうすればよいですか?

0 投票する
4 に答える
4357 参照

algorithm - レコメンデーションエンジンを構築する際に考慮すべきことは何ですか?

集合知プログラミングという本を読んだことがありますが、それは魅力的です。私は最近、アマゾンが彼らのシステムのためのより良いレコメンデーションエンジンを考え出すために世界に投稿した挑戦について聞いた。

勝者は、供給される情報の量を制限することにより、明らかに最良のアルゴリズムを作成しました。

最初の経験則として、私は推測します...「ファジーアルゴリズムに関しては、より多くの情報が必ずしも良いとは限りません。」

それは主観的なものですが、最終的には測定可能なものです(推奨事項に応じてクリックします)。

私たちのほとんどは最近ウェブを扱っており、検索は一種の推奨事項と見なすことができるので...これについて他の人々のアイデアを高く評価するのは私だけではないのではないかと思います。

一言で言えば、「推奨事項を作成するための最良の方法は何ですか?」

0 投票する
1 に答える
4626 参照

algorithm - Delphiでレーベンシュタイン距離をどのように実装しますか?

私はあなた自身の質問に答える精神でこれを投稿しています。

私が抱えていた質問は、ここで説明されているように、2 つの文字列間の編集距離を計算するためのレーベンシュタイン アルゴリズムをDelphi でどのように実装できるかということでした。

パフォーマンスに関する注意: これは非常に高速です。私のデスクトップ (2.33 Ghz デュアルコア、2GB RAM、WinXP) では、100K 文字列の配列を 1 秒未満で実行できます。

0 投票する
14 に答える
48599 参照

algorithm - アナグラムを生成するアルゴリズム

アナグラムを生成するための最良の戦略は何でしょうか。

  • イレブンプラス212プラス1のアナグラムです
  • 小数点は、私がドットであるというアナグラムです。
  • 天文学者月のスターのアナグラムです

最初は、文字をごちゃ混ぜにしてすべての可能な組み合わせを生成するだけで、簡単に見えます。しかし、辞書にある単語だけを生成するための効率的なアプローチは何でしょうか。

私はこのページに出くわしました、Rubyでアナグラムを解きます。

しかし、あなたの考えは何ですか?

0 投票する
11 に答える
45223 参照

c# - ランダム加重選択

Broker を表す以下のクラスを検討してください。

重みを考慮して、配列からブローカーをランダムに選択したいと思います。

以下のコードについてどう思いますか?

私はあまり自信がありません。これを実行すると、ブローカー A は常にブローカー D よりも多くのヒットを取得し、重みも同じです。

より正確なアルゴリズムはありますか?

ありがとう!

0 投票する
8 に答える
237 参照

xml - xml 文字列で親を強調表示する

私が持っているとしましょう:

z の親であるすべてのリスト項目にクラス値を追加したいと考えています。したがって、y を変更したいのですが、x は変更したくありません。

明らかに、これをある種の連想配列に解析してから、逆方向に再帰することができます。テキスト処理(文字列の置換、正規表現など)だけでそれを行う方法はありますか?

ありがとう!

0 投票する
4 に答える
969 参照

c# - 文字列の配列内のシーケンスを減らす最良の方法

質問を書き直したので、熱心な編集者によるさらなる速攻の回答や時期尚早の閉鎖に苦しむ前に、これはこの質問の複製ではないことを指摘させてください。配列から重複を削除する方法を知っています。

この質問は、厳密な意味での重複ではなく、配列からシーケンスを削除することに関するものです。

配列内の要素の次のシーケンスを考えてみましょう。

この例では、次のものを取得したい...

重複する要素は保持されますが、同じ要素のシーケンスはその要素の 1 つのインスタンスに縮小されていることに注意してください。

さらに、2 つの行が繰り返される場合は、1 つのセット (2 つの行の) に減らす必要があることに注意してください。

...に還元...

私は C# でコーディングしていますが、任意の言語のアルゴリズムを高く評価しています。

0 投票する
4 に答える
1505 参照

algorithm - TNT.com の追跡番号に使用されるチェックサムは何ですか?

追跡番号を特定するソフトウェアを作成しています (Google が FedEx や UPS の番号を検索して特定するのと同じ方法で)。ほとんどの配送業者は、番号が有効な追跡番号であるかどうかを識別するために使用できる「加重平均 mod システム」などのシステムを使用しています。TNT の委託番号がそのようなシステムを使用しているかどうかを知っている人はいますか? もしそうなら、それは何ですか? TNT のサポートに問い合わせたところ、担当者はそうではないと言っていましたが、再確認したいと思います。

0 投票する
16 に答える
102253 参照

algorithm - 任意の 2 つの頂点間のすべての接続を検出するグラフ アルゴリズム

以下で説明するタスクを達成するために、最適な時間効率の良いアルゴリズムを決定しようとしています。

私はレコードのセットを持っています。このレコードのセットには、このセットのレコードのペアが互いにどのように接続するかを示す接続データがあります。これは基本的に無向グラフを表し、レコードが頂点、接続データがエッジになります。

セット内のすべてのレコードには接続情報があります (つまり、孤立したレコードは存在しません。セット内の各レコードは、セット内の 1 つ以上の他のレコードに接続されます)。

セットから任意の 2 つのレコードを選択し、選択したレコード間の単純なパスをすべて表示できるようにしたいと考えています。「単純なパス」とは、パスに繰り返しレコードがないパス (つまり、有限パスのみ) を意味します。

注: 選択された 2 つのレコードは常に異なります (つまり、開始頂点と終了頂点が同じになることはありません。サイクルはありません)。

例えば:

開始レコードとして B を選択し、終了レコードとして E を選択した場合、レコード B をレコード E に接続するレコード接続を通るすべての単純なパスを見つけたいと思うでしょう。

これは一例です。実際には、数十万のレコードを含むセットがある場合があります。