仲間内でテニスの大会を行うことになり、対戦表を作ることとなった。トーナメントや総当たり形式であれば簡単であるが、今回は次のような複雑な条件で組む必要があった。
- ダブルスのペアを固定せずに一定数のゲームを実施する。
- プレイヤー全員が同じ回数だけゲームに参加できるようにする。
- 同じプレイヤーの組み合わせのゲームや同じペアとなることをできる限り防ぐ。
- 同じプレイヤーができる限り連続してゲームにならないようにする。
これらの条件を満たす対戦表を人力で作るのは困難であったため、簡単なプログラムをPythonで実装した。難しいアルゴリズムを使っている訳ではなく、乱数ベースで条件を満たす組み合わせをひたすら探す単純なものではあるが、実装内容を紹介する。