私たちは何について話しているのですか
私はフォーミュラ1の真のファンです。 私は8歳の頃からレースをフォローしており、作業カレンダーにはグランプリのすべての日付がリストされており、RSSを通じていくつかのテーマサイトを読みました。 そのうちの1つでは、予測コンテストが毎年開催されます。 ルールはシンプルです。各グランプリの前に、フィニッシュラインで上位10人のドライバーを予測する必要があります。 その結果、予測で指定した10人のパイロットと、レースの結果に応じた10人のベストパイロットの2つのテーブルが比較されます。 火の玉の集まり、事故、故障などの予期せぬ状況により、トップ10を予測することは困難です。 したがって、私は1つの簡単な質問に答えました-誰が賭けで最も賭けをするのですか? もちろん、ブックメーカー。 たとえば、 ウィリアムヒルの英国オフィスを予測した場合、コンテストに勝つ可能性はどのくらいですか?
競争のルールは単純です。 トップ10以外でフィニッシュしたパイロットはカウントされません。 パイロットが予測で指定した場所で終了すると、25ポイントを獲得します;間違えた場合、1ポイント-18ポイント、2-15ポイント、3-12ポイント、4-10ポイント、5-8ポイント、6〜6ポイント、7〜4ポイント、8〜2ポイント、9〜1ポイント。 (同じポイントが、レースのフィニッシュでのポジションのライダーを獲得します)。 各ポジションのポイントが加算されます。 シーズンの勝者を決定する際に、5つの最高の予測の結果が考慮されます。
誤算に至る
まず、レース前のブックメーカーの予想とレースの結果を見つけて、それらを1つのテーブルにまとめました。
20のグランプリすべての結果を読みたいとは思わなかったので、小さなスクリプトを書くことにしました。 しかし、私が最後にプログラムしたのは学校で、Google Developersのドキュメントとそのプラットフォームを採用して、かなり長い期間にわたって作業スクリプトの概要を説明することができました。
* 2012年オーストラリアグランプリの例
いや | レース | 予測 | ポイント |
1 | ボタン | ベッテル | 12 |
2 | ベッテル | ハミルトン | 18 |
3 | ハミルトン | ウェバー | 18 |
4 | ウェバー | ボタン | 18 |
5 | アロンソ | アロンソ | 25 |
6 | 小林 | ロズベルグ | 0 |
7 | ライコネン | ライコネン | 25 |
8 | ペレス | シューマッハ | 0 |
9 | リカルド | グロジャン | 0 |
10 | ディレスト | 質量 | 0 |
このテーブル用にシャープ化されたスコアリングのコード例
function points() { var sheet = SpreadsheetApp.getActiveSheet(); // var race, forecast = new Array(); // var points_race = new Array(25,18,15,12,10,8,6,4,2,1); // for (var k=3; k<=215; k=k+11){ // race = sheet.getRange(k, 2, 10, 1).getValues(); // forecast = sheet.getRange(k, 3, 10, 1).getValues(); // for (var i=0; i<=9; i++){ sheet.getRange(k+i,4).setValue(0); // "0" for (var j=0; j<=9 ; j++) if (race[i].toString() == forecast[j].toString()){ // sheet.getRange(k+i,4).setValue(points_race[Math.abs(ji)]); // break; // } } } }
LARGE関数を使用して、各ステージのポイント数を計算した後、5つの最良の結果を選択しました。
5つの最高の結果
グランプリ | 合計ポイント |
インド | 156 |
アメリカ | 155 |
カナダ | 118 |
シンガポール | 117 |
オーストラリア | 116 |
金額 | 662 |
最初の結論
上位5位(662ポイント)のすべてのレース(2064ポイント)の全体的な良好な結果にもかかわらず、 上位3位 (789-767ポイント)の勝者への競争は成り立ちませんでしたが、結果は「フレア」に基づいた自分のものよりも優れていました。
あきらめないで
私はそこで止まらず、合計7つの異なる予測関数を作成しました。
- 上記の説明-予測はブックメーカーのレートで個別の段階で計算されました。
- シーズンの開始前に、ブックメーカーの率で選手権に勝つ。
- キーボードの上を歩いた私のお気に入りの猫「マツカ」の賭け-ランダムなダースのライダー、すべてのステージに1人。
- 各ステージのランダムなダースライダーは異なります。
- 最初の練習結果。
- 2番目のプラクティスの結果。
- 3番目の練習の結果。
すべての結果が1つのテーブルになります。
計算 | 5つの最高の結果を獲得します。 |
ブックメーカーステージ | 662 |
チャンピオンブックメーカー | 640 |
ランダムワン(MatSyk) | 569 |
すべてランダム | 542 |
最初の練習 | 596 |
第二練習 | 712 |
第三の練習 | 622 |
結論
記事の最後の部分に結論があるはずです。それに問題があります:)仕事を始める前に、最高ではないにしても、少なくとも予報に近いと思いました。 しかし、別のことが確認されました-確率の単純な理論だけではうまくいかないために良い結果を示すには、既存のアルゴリズムを他の変数で修正する必要があります。 一方で、プログラミングのことを忘れて、私にとって、そしておそらくあなたにとっても面白い仕事を解決し、少なくとも少し経験を積んで、脳を楽しませました。
ポストスクリプト
githubでは、テーブルに合わせて調整されているため、コードをあふれさせませんでした。
テーブルとスクリプトは、表示、使用、Google Diskで自分のコピーの作成、計算の開始-メニュー「ローション」に使用できます。
読者が予測を計算する他の方法についてアイデアを持っているなら、私に書いてください、私は喜んでそれらに耳を傾けます。