重み付けされたサッカーくじの自動生成・・・


 

前ページでは、 サッカーくじの選択を完全にランダムに決めていましたが、 チーム

の勝敗表などを考慮した重みづけをプログラムに導入してみます。また、予想通り

試合の勝敗が決まっても配当金の額はあまり大きくならず、番狂わせが起きたとき

に高額になります。 従って、確率が高い選択だけでなく、意図的に確率が低いもの

も出力するようにします。 まずは、前ページのプログラムをGOTO文を使わない形

に書き換えてみます。BASIC以外の言語でプログラムを作るときの参考にしてくだ

さい。

 

OMOMIZUKE-SOCCER-KUJI-GENERATION-PROGRAM-1.GIF - 6,087BYTES

OMOMIZUKE-SOCCER-KUJI-GENERATION-PROGRAM-2.GIF - 4,313BYTES

 

課題(その1)

 

NUMBERS−3NUMBERS−4にも対応できるように、上記のプログラムを

修正してください。

 

それでは、重み付けされたサッカーくじのプログラムを考えましょう。乱数を使って、

くじを自動生成する部分は上のプログラムと同じです。 この部分にさらに重み付け

の為の関数部を加えます。 ここでは、勝敗表の順位を重み付け関数に反映させま

す。以下の式の第三項が重み付けの為の関数部です。

 

N=3*RND−1.5+1.2*(TA(I)−TB(I))/18

 

TA(I)はチーム(ホーム)の順位であり、TB(I)はチーム(ビジター)の順位です。 も

し、この項がなければ、Nの値は−1.5から1.5までの間の値をランダムに取りま

す。−0.5未満を、−0.5以上0.5未満を、そして、0.5以上をとすれば、重

み付けを考慮しない場合のくじの選択になります。  三つの数字の発生確率は同じ

になります。  ホームのチームの順位がビジターのチームの順位より高ければ、 第

三項は負の値となり、Nの値を負の方向にシフトさせます。つまり、1が出る確率が

高まります。 1.2 はシフトの大きさを調節する為の係数と考えてください。 全体の

プログラムは以下のようになります。

 

OMOMIZUKE-SOCCER-KUJI-GENERATION-PROGRAM-3.GIF - 8,283BYTES

OMOMIZUKE-SOCCER-KUJI-GENERATION-PROGRAM-4.GIF - 4,596BYTES

 

課題(その2)

 

Jリーグイングランドプレミアリーグなどの試合結果を統計的に分析して、重

み付け関数部の式を最適化してください。

 

 

 

 

 

 

 


 

Topへ