OK ...だから私はちょっと難しい(私のために、少なくとも)。有効な組み合わせの最大数を見つけるアルゴリズム?
私は単純なオブジェクトのリストを持っており、最大数を利用する組み合わせを見つける方法を理解する必要があります。これらのオブジェクトの各クラスは、名前のプロパティ(文字列)、結合する他の要素の名前のプロパティ(List)、他の要素の名前のプロパティ(List)を持っています債券に似ていない。
特定の要素が既にコレクション内にある他の要素の1つ(またはそれ以上)を「好き」しているコレクションに要素が追加された場合、追加された要素はコレクションの各項目に対して+1を返します好きです。同様に、追加された要素が好きではないコレクション内の他の各要素に対してスコア-1が返されます。すべての要素を最終コレクションに追加した後、それぞれのスコアは0以上でなければなりません。
最大のコレクションを返すために使用できる要素の組み合わせを見つけるにはどうすればよいですか?同じ数の要素を返す複数の組み合わせの場合、すべての可能な組み合わせを返す必要があります。
私はC#(.NET 4.0)を使用していますが、どのプログラミング言語も使用できるので、その背後にあるロジックを理解する必要があります。事前に
おかげで、
ソニー
あなたが見ているオブジェクトの有限集合または特定の範囲のオブジェクトがありますか? 1つのオブジェクトをコレクション内で繰り返すことはできますか? – jball
また、各アイテムにあらかじめ定義され固定されている「好き」と「嫌い」リストはありますか?それらはすべてのアイテムの長さが同じですか?長さが異なる場合は、アイテムを追加する前にアイテムを並べ替えることができます。 –
関係は対称ですか?私は、AがBを好むならば、BがAを好んでいるということを意味し、AがBを嫌うならば、Bが嫌いであるということですか? –