私は最近、物事を勉強してドナルドクヌスと会いました。しかし、私は問題に正しいアルゴリズムを見つけられませんでした。ラウンドロビントーナメントのスケジューリングアルゴリズム?
問題私たちはn人の選手とリーグを持っています。毎週彼らはお互いにマッチしています。 n-1週間で各チームが互いに戦った。 1日にn/2回の試合があります。 1チームは1週間に1度だけ戦うことができます。 (n/k)の組み合わせを生成すると、(k = 2と仮定して)すべての組み合わせが得られますが、それらを正しい順序で持っていく必要があります。
私の最初の提案は...最高のものではありませんでした。私はちょうど配列を作って、正しい方法を見つけたらコンピュータに試してみましょう。そうでない場合は、最初に戻り、配列をシャッフルして、やり直してください。PHPでプログラムしたもの(n = 8)と何が出てくるのですか?しかし、n = 16の場合、同じように。
私はおそらくアルゴリズムを見つけるか、誰かがこの問題をカバーする本を知っていると思いました。
そして、ここに私のコードです: http://pastebin.com/Rfm4TquY
[ウィキペディアを参照](http://en.wikipedia.org/wiki/Round-robin_tournament#Scheduling_algorithm) –