2007-09-03
3割打者の10年の成績をシミュレート
打率3割の打者がいたとします。 この打者は打席に立つと3割の確率でヒットを打つものとして、10年間の成績(安打数)を次のようにシミュレートします。 1シーズンの打席数は400とします。
def hit?(average) rand < average end average = 0.300 bats = 400 10.times do hits = 0 bats.times { hits += 1 if hit?(average) } puts "#{hits}/#{bats} .#{1000 * hits / bats}" end
このプログラムを走らせるとこんな結果が出ます。 randメソッドを使っているので結果は毎回異なります。
114/400 .285 121/400 .302 121/400 .302 112/400 .280 118/400 .295 134/400 .335 106/400 .265 115/400 .287 120/400 .300 138/400 .345
成績を詳しく見てみると、プロ5年まではおよそ3割付近の打率を安定して残しています。 プロ6年目には打率.335という好成績を記録しました。 しかし翌年は打率.265という不振に陥ります。 そしてプロ10年目にして過去最高の138安打(打率.345)というすばらしい成績を達成しました。
10年間同じまったく能力でも、これではきっと○年は好調△年はスランプなんていわれてしまいますね。
さて、話を現実に戻して実在のプロ野球選手が同じ能力でシーズンを向かえた場合、 偶然によってこんなにも成績が違ってしまうものなんでしょうか? あくまで実力にはいろんな要素が複雑に絡み合うということは別として、どうなんでしょう。 それともこのシミュレートには何か致命的な誤りがあるのかな。