リスト内の重複のペアの数を返すアルゴリズムを見つけようとしています。効率的に重複のペアの数を見つける
例: 入力:[13,4,8,4,13,7,13,9,13] 出力:7 (4〜13の1対に出てくる6対および2つの4者に出てきます)
私のアルゴリズムはより効率的になりますか? 〜ここ
my_List=[13,3,8,3,13,7,13,9,13]
pairs=0
alreadySeen=[]
for element in my_List:
howMany=0
if element in alreadySeen:
False
else:
howMany=my_List.count(element)
pairs=pairs+((howMany*(howMany-1))/2)
howMany=0
alreadySeen.append(element)
print(pairs)
どのようにすることができます '4 13の6 pairs'、なぜ' 2 pairs'に出てきますか? –
私は 'python'を知らないのですが、これは' java/php/js/perl/c/C++ ' –
と書くことができます。13は6種類のユニークなペアを作成します。 (13.1,13.2)(13.1,13.3)(13.1,13.4)(13.2,13.3)(13.2,13.4)(13.3,13.4) –