考えを文章で伝える練習帳

考えを文章で伝える練習帳。文章を書く習慣を付けたいです。

昨日の続き。会社からWebを漁ってみたところ
どうやら、この類の問題は、計画数学の対象となっているようだ。
いくつか面白いサイトがあった。


http://www.misojiro.t.u-tokyo.ac.jp/~tomomi/B4-M2/1998/miyashiro.html
Jリーグの対戦日程とか


たとえば昨日さりげなく触れた、最終日は1位と2位が戦って欲しいとか
そういう、盛り上げるための工夫を入れていくと、計算が大変になる。


んで、考え方。はじめにn人総当りを作ってしまって
その後、必要ない対戦日を削る方法が楽なんじゃないかと。
n人総当りの作り方は

このサイトの方式が楽い。
http://www.geocities.co.jp/Berkeley-Labo/6317/league.htm

ABCDEF
A*54321
B5*2413
C42*135
D341*52
E2135*4
F13524*


とりあえず総当りができたら、左下と右上にいる数字を対戦数に合わせて消す。
理由は左下と右上にあるほど、実力差が大きい対戦になるため。
ためしに1と2を消してみる。

ABCDEF
A*543**
B5**4*3
C4***35
D34**5*
E**35*4
F*35*4*

2位と3位の対決が無くて嫌だ!という場合は2の代わりに3を消せばOK。
これで機械的に作る方法が一応確立された、はず。
奇数人参加の場合はこの状態から更に、Fとの対戦を全て休みにすることで作れる。


この作り方は人数に対して線形にしか計算量が増えないので
JWLのSeason1のように18人参加でも問題なくリーグを組める。
6人程度だと、昨日のように手作業で埋めたほうが綺麗に作れるのは確か。
大人数の場合にはこちらのほうが楽。試合数と参加者がいくつでも柔軟に対応できる。


公平性は疑問点ありまくり。↑の例だとCとDはDのほうが厳しい対戦になっている。
n人総当りを作った後に、いくつか条件を設けて、消す数字を選べば良いとは思うが
万人が納得する条件は難しい。そもそも、公平であるかどうかは
順位1つによる実力の差が、全て等しいという仮定をしないと判断しにくいが
複雑なゲームではその仮定はまずなりたたない。だから公平っぽい雰囲気だけで
満足するべきだと思う。CとDは明らかにDがきついのでそういうところは直す。とか。


とりあえずこんな感じで。