0

以下に概説するように、それぞれがいくつかのサブアイテムを特徴とするいくつかのアイテム(トピック)があります...

応用

  • マイクロソフトワード
  • 優れている
  • Visual Studio

DB

  • mysql
  • mssql

これらのグループのいくつかを比較し、それぞれのトピックに含まれるサブアイテムの数と他のトピックに含まれるサブアイテムの数に基づいて、理想的には1〜10のスケールで、各トピックにスコアを付けたいと思います。特定の言語。配列を比較したいのですが、すべての配列を他のすべての配列と比較して、事後にスコアを出す方法がわかりません。ありがとうございました。

4

1 に答える 1

0

これは、ユニオンの計算に要約されます。最新の言語のほとんどは、これを支援するためにデータ型を実装しています。Python には辞書とセットがあり、C++ には STL マップとセットなどがあります。提供されたデータ型の方がはるかに効率的であるため、共用体の手動計算は避けたいと思います。各トピックは一連のサブトピックと考えることができ、これらのサブトピックの結合により、共通する (つまり、各トピック内の) トピックの数が決まります。

各項目 (トピック) 間のスコアを見つけたい場合、および n トピックを使用しない場合、n(n - 1) / 2 スコアを計算します。トピックの数が増えると、計算されるスコアの数が急速に増えることに注意してください。

スコアの計算に関しては、集合 A と集合 B の間の和集合が見つかります。この和集合は次のいずれかです。

  • すべての項目を含む (A と B がまったく同じセットを持っていたことを意味します)。10のスコア
  • 1 セットのすべてを含む (B が A のすべてを含む、またはその逆を意味する) 1 つのセットに固有のアイテムの数に応じたスコア
  • A または B のいずれかの最小サイズ未満が含まれています

したがって、単純な計算は次のようになります。

(union.length / max(A.length, B.length)) * 10
于 2012-10-25T17:28:24.270 に答える