2016-11-01 17 views
0

学生と教師という2つの不等なサイズのリストを持つアルゴリズムを作成する必要があります。教師よりも多くの生徒がいます。私は各生徒のペアリングを作成する必要があります。各生徒はほぼ同じ生徒数に対応しています。2つの不等なリストをペアでペアリングするアルゴリズム

合併症は、私が受け入れられないペアリングのコレクションを持っているということです。具体的には、各生徒は、ペアにできない1人以上の教師を持つことができます。

私は、各教師が割り当てられている生徒の数が正確である必要はないので、無作為にマッチングを開始し、一致しないマッチングをスキップする非常に効率的な貪欲アルゴリズムを実行できることはわかっています。それにかかわらず、私はこれを行うための効率的かつ完全な方法が大好きです。あなたが提供できるアドバイスありがとう!

+0

十分に簡単ですが、どのプログラミング言語で作業していますか? – Absinthe

+0

c#、私はASP.NET MVCを使用しています。生徒と教師のリストはパラメータとして与えられ、制限はデータベースの一部です。 – hallordylo

+0

受け入れられないペアリングの辞書を作成し、比較します。 https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx – Absinthe

答えて

1

私は最も限定的なマッチングから始まり、制限が少ないものから最後までマッチングを無制限にして、バランスを取るために使うことができます。

+0

これは素晴らしいソリューションです。ありがとうございます@O_Z!多くの生徒には何の制限もありませんので、私がそれらを通過すると、私はただリストをまっすぐに実行することができます。 – hallordylo

関連する問題