総当り対戦で同順位が発生したときによく用いられている、直接対決の結果の利用について。
直感的に分かりやすいのは、対象者のみの総当り表を作成する方法。紙面上で行いやすい。
例
- 1 2 3 4 5 6 勝利数 順位 1 - ○ ○ ○ × × 3 1 2 × - ○ ○ × ○ 3 1 3 × × - ○ ○ ○ 3 1 4 × × × - ○ ○ 2 4 5 ○ ○ × × - × 2 4 6 ○ × × × ○ - 2 4 ↓
- 1 2 3 勝利数 順位 1 - ○ ○ 2 1 2 × - ○ 1 2 3 × × - 0 3
- 4 5 6 勝利数 順位 4 - ○ ○ 2 1 5 × - × 0 3 6 × ○ - 1 2
最初に書いたプログラムはこれだったが、Excel上に総当り表を何回も作成することになるので時間がかかる。
しかし、行列を使えば簡単に計算できた。
まず、対戦結果を勝ち=1、負け=0として行列で表す。
次に、対象順位に該当すれば1、しなければ0の行列を作る。
を求めることで、対象順位に対する勝利数を得られる。
例
- 1 2 3 4 5 6 勝利数 順位 1位に該当 4位に該当 1位に対する勝利数 4位に対する勝利数 1 - ○ ○ ○ × × 3 1 ○ 2 1 2 × - ○ ○ × ○ 3 1 ○ 1 2 3 × × - ○ ○ ○ 3 1 ○ 0 3 4 × × × - ○ ○ 2 4 ○ 0 2 5 ○ ○ × × - × 2 4 ○ 2 0 6 ○ × × × ○ - 2 4 ○ 1 1
Excel上に1度枠を作れば、対戦結果、基準となる順位を更新するだけでよい。
対戦結果によっては、これらの処理を1回行っただけでは不十分な場合がある。
基準となる順位と新しく求めた順位を比較して、以下の条件を満たすまで繰り返す。
条件
1、順位の重複がなくなる。
2、順位は重複するが、基準となる順位と新しく求めた順位が一致。(いわゆる三つ巴の状態)
例
- 1 2 3 4 5 6 勝利数 基準となる順位 1 - ○ ○ ○ × × 3 1 2 × - ○ ○ × ○ 3 1 3 × × - ○ ○ × 2 5 4 × × × - × ○ 1 6 5 ○ ○ × ○ - × 3 1 6 ○ × ○ × ○ - 3 1 ↓
- 1 2 5 6 勝利数 順位 1 - ○ × × 1 2 2 × - × ○ 1 2 5 ○ ○ - × 2 1 6 ○ × ○ - 2 1
- 1 2 3 4 5 6 勝利数 基準となる順位 新しく求めた順位 1 - ○ ○ ○ × × 3 1 3 2 × - ○ ○ × ○ 3 1 3 3 × × - ○ ○ × 2 5 5 4 × × × - × ○ 1 6 6 5 ○ ○ × ○ - × 3 1 1 6 ○ × ○ × ○ - 3 1 1 新しく求めた順位を基準にして再計算
↓
- 1 2 勝利数 順位 1 - ○ 1 1 2 × - 0 2
- 5 6 勝利数 順位 5 - × 0 2 6 ○ - 1 1
- 1 2 3 4 5 6 勝利数 基準となる順位 新しく求めた順位 1 - ○ ○ ○ × × 3 3 3 2 × - ○ ○ × ○ 3 3 4 3 × × - ○ ○ × 2 5 5 4 × × × - × ○ 1 6 6 5 ○ ○ × ○ - × 3 1 2 6 ○ × ○ × ○ - 3 1 1 順位の重複がなくなったので終了。