簡単にするために、対応する番号を持つ3色のケース例を使用してみましょう(実際には、実際には30,000以上の異なる「色」と254の異なる「番号」があります)
赤-0、1、2、3、10、15
緑-0、2、3、20
青-2、10、11、12
それらの間の一致(rgb、rg、rb)を見つけ、セット間で共有される#の数を集計したいと思います。
rgb = 1
rg = 2
rb = 2
最後に、セット内の個別の#の数と比較した共有された#の数の比率を決定する必要があります。
rgb = 1/9(0、1、2、3、10、11、12、15、20)
rg = 2/7(0、1、2、3、10、15、20)
rb = 2/8(0、1、2、3、10、11、12、15)
したがって、合計出力は次のようになります。
一致| 一致数| %|
rgb | 1 | 1/9
rg | 2 | 2/7
rb | 2 | 2/8
私が思いついたアルゴリズムは、テーブルに各色があり、それに関連付けられた番号(別名赤(テーブル名)、0、1、2、3、10、15(データ))をマップすることです。次に、「数字」が最も多い色を取得し、それを他のすべての色の時間と比較して、一致するものを見つけます。その色を使い終わったら、100%無視して次の色に移り、n-1と比較することができます。
例を見てみましょう:
1)赤を選択
2)他の色は0を共有しますか
3)他の色は共有しますか1
....等
4)青を選択します5)他の色から赤を引いたものは共有しますか....。
これを行うにはもっと効率的な方法が必要だと私は知っています、何か提案はありますか?
助けてくれてありがとう。