Excelでの宝くじシミュレーション

宝くじは運をつかむものではなく、

それは敗者の狩りです。

うらやましいほどの規則性で (そして最近はより頻繁に)、宝くじに関連するさまざまな計算について助けを求めて人々が私に手紙を書きます。 当選番号を選択するための秘密のアルゴリズムを Excel に実装したい人、過去の抽選で落ちた数字のパターンを見つけたい人、不正なゲームで宝くじの主催者を捕まえたい人などです。

私は今、私たちの人生に大きな影響を与えています。 −ωのexcel被取り

タスク 1. 勝つ確率

例として、古典的な Stooto 6 のうち 45 の宝くじを見てみましょう。 ルールによると、10 つの数字のうち 6 の数字すべてを当てた人だけが、スーパー賞金を受け取ります (賞金の残高が以前の抽選から蓄積されている場合、45 万ルーブル以上)。 あなたが5を推測した場合、150 - 4ルーブルの場合、1500万ルーブルを受け取ります。 、3つのうち6つの数字の場合、150ルーブル、2つの数字の場合-チケットに費やされた50ルーブルを返します。 XNUMX つだけを推測するか、まったく推測しない - ゲーム プロセスからエンドルフィンのみを取得します。

数学的勝利確率は、標準関数を使用して簡単に計算できます。 ナンバーコム (混ぜる)、このような場合に Microsoft Excel で利用できます。 この関数は、M 個中の N 個の数字の組み合わせの数を計算します。したがって、「6 個中 45 個」の宝くじの場合は次のようになります。

=ЧИСЛКОМБ(45;6)

…これは、この宝くじで考えられるすべての組み合わせの総数である 8 に相当します。

部分的な勝利 (2 つのうち 5-6 の数字) の確率を計算したい場合は、最初にそのようなオプションの数を計算する必要があります。残りの 6 のうち、推測されていない数字の数 (45-6) = 39 の数字。 次に、すべての可能な組み合わせの合計数 (8) を、各オプションで受け取った勝利数で割ります。そして、各ケースの勝利確率を取得します。

Excelでの宝くじシミュレーション

ちなみに、例えばわが国で飛行機事故で亡くなる確率は、1万分の1程度と推定されています。 そしてカジノのルーレットで、37つの数字にすべてを賭けて勝つ確率はXNUMXからXNUMXです。

上記のすべてで停止せず、さらにプレイする準備ができている場合は、続行してください。

タスク 2. 各数字の出現頻度

まず、特定の数字がどの頻度で落ちるかを判断しましょう。 理想的な宝くじでは、分析に十分な時間間隔が与えられると、すべてのボールが当選サンプルに含まれる確率が同じになるはずです。 実際には、宝くじドラムの設計上の特徴とボールの重さの形状によって、この図が歪められる可能性があります。 この仮説を実際にテストしてみましょう。

たとえば、分析に便利な「スマート」テーブルの形で設計された、分析に便利な「スマート」テーブルの形で設計された、2020-21 で開催された 6 年から 45 日に行われた XNUMX の宝くじ抽選のうちすべてのデータを見てみましょう。 tabアーカイブ回覧. Розыгрыши проходят два раза в день (в 11 утра и в 11 вечера), т.е. 私はあなたを愛しています—私はあなたを愛しています—私はあなたを愛しています:

Excelでの宝くじシミュレーション

各数値の出現頻度を計算するには、関数を使用します COUNTIF (カウンティフ) それに関数を追加します TEXT (テキスト)XNUMX 桁の数字の前後に先行ゼロとアスタリスクを追加して、COUNTIF が列 B の組み合わせのどこかに数字の出現を探すようにします。また、わかりやすくするために、結果でグラフを作成し、頻度を並べ替えます。降順:

Excelでの宝くじシミュレーション

平均して、どのボールも落ちるはずです 1459 ドロー * 6 ボール / 45 数字 = 194,53 回 (これはまさに統計で呼ばれているものです) математическим ожиданием)、≥27、чтонекоторыечисла(32、11、18…)Выпадализаметночащащащащащ Соответственно, можно попробовать использовать эту информацию для стратегии выигрыша, т.е. ○ωime -¬араооры、ч???±ゥするっと、ччаです。

タスク 3. 長い間描かれていない数字は?

別の戦略は、ドローの数が十分に多い場合、遅かれ早かれ 1 から 45 までの利用可能なすべての数字が落ちるという考えに基づいています。 したがって、一部の数字が勝者の中に長い間表示されていない場合 (「コールド ボール」)、将来それらに賭けることを試みることは論理的です。 

するまでするげするげするっとするまっています。 もっと露出 (マッチ). 上から下 (つまり、新しい実行から古い実行) に検索して各番号を検索し、この番号が最後にドロップされた実行のシリアル番号 (年末から年始までのカウント) を提供します。

Excelでの宝くじシミュレーション

4. Генератор случайных чисел

別のゲーム戦略は、数字を推測する際の心理的要因を排除することに基づいています。 プレーヤーが賭けをして数字を選ぶとき、完全に合理的というわけではなく、無意識のうちにそれを行います。 統計によると、たとえば、1 から 31 までの数字は残りの数字よりも 70% 多く選ばれ (お気に入りの日付)、13 はあまり選ばれず (くそダース)、「幸運な」XNUMX を含む数字はより頻繁に選ばれる、などです。しかし、私たちはすべての数字が同じマシン (宝くじのドラム) と対戦しているので、チャンスを均等にするために同じ数学的公平性でそれらを選択することは理にかなっています。 これを行うには、Excel で乱数のジェネレーターを作成する必要があります。最も重要なのは、反復しない数値です。

    Excelでの宝くじシミュレーション

これをする:

  1. という名前の「スマート」テーブルを作成しましょう テーブルジェネレーター、最初の列は 1 から 45 までの数字になります。
  2. 1 番目の列に、各数値の重みを入力します (後で必要になります)。 すべての数値が等しく価値があり、それらを等しい確率で選択したい場合は、重みをどこでも XNUMX に等しく設定できます。
  3. XNUMX 番目の列では、関数を使用します。 スルキス (ランド)、 0 日 1 日に Excel で作業を開始する前に、次の作業を行ってください。 Таким образом каждый раз при пересчёте листа (нажатии на клавишу) F9) 45 個の乱数の新しいセットが生成され、それぞれの重みが考慮されます。
  4. 関数を使用して、XNUMX 番目の列を追加しましょう。 RANK (ランク) вычислим ранг (позицию в топе) для каждого из чисел.

関数を使用して、ランク 6 ごとに最初の XNUMX つの数字を選択する必要があります。 もっと露出 (マッチ):

Excelでの宝くじシミュレーション

При нажатии на клавизу F9 Excel シートの数式が再計算され、そのたびに緑色のセルに 6 つの数値の新しいセットが表示されます。 さらに、列 B でより大きな重みが設定された数値は、比例してより高いランクを受け取り、ランダム サンプルの結果により頻繁に表示されます。 すべての数字の重みが同じに設定されている場合、すべての数字が同じ確率で選択されます。 このようにして、6 個中 45 個の公平で偏りのない乱数ジェネレーターを取得しますが、必要に応じて分布のランダム性を調整することができます。

各抽選で 6 枚ではなく、たとえば、一度に 12 枚のチケットでプレイすることに決めた場合、それぞれのチケットで繰り返しのない数字を選択する場合は、下から緑の範囲にラインを追加するだけで済みます。ランクに 18、XNUMX、XNUMX などを追加します。 d. それぞれ:

Excelでの宝くじシミュレーション

タスク 5. Excel の宝くじシミュレーター

このトピック全体の神格化として、Excel で本格的な宝くじシミュレーターを作成してみましょう。そこでは、任意の戦略を試して結果を比較できます (最適化理論では、似たようなものをモンテカルロ法とも呼びますが、より単純になります)。私たちのために)。

すべてを可能な限り現実に近づけるために、今が 1 年 2022 月 XNUMX 日で、今年の抽選が予定されていると想像してみてください。 実際のドロップ数を表に入力しました テーブルティラジ2022、追加で描画された数字を互いに別の列に分けて、後続の計算の便宜を図ります。

Excelでの宝くじシミュレーション

別紙で ゲーム 名前の付いた「スマート」テーブルの形でモデリング用のブランクを作成します タブイグラ 次のフォーム:

Excelでの宝くじシミュレーション

ここに:

  • 上の黄色のセルでは、2022 年に参加したいドローの数 (1 ~ 82) と、各ドローでプレイするチケットの数をマクロに設定します。
  • 最初の 11 列 (AJ) のデータは、2022 年のドロー シートからマクロによってコピーされます。
  • マクロがシートから取得する次の XNUMX 列 (KP) のデータ 発生器ここで、乱数ジェネレーターを実装しました (上記の問題 4 を参照)。
  • 列 Q では、ドロップされた数値と関数を使用して生成された数値との間の一致の数をカウントします SUMPRODUCT (和積).
  • В столбце R вычисляем финансовый результат (если не выиграли, то минус 50 рублей за билет, если выиграли, то приз — 50 р. за)
  • 最後の列 S では、プロセスのダイナミクスを確認するために、ゲーム全体の全体的な結果を累積合計と見なします。

そして、この構造全体を復活させるには、小さなマクロが必要です。 タブ上 開発者 (デベロッパー) チームを選ぶ ビジュアルベーシック またはキーボードショートカットを使用 他の+F11. 次に、メニューから新しい空のモジュールを追加します インサート – モジュール そこに次のコードを入力します。

Sub Lottery() Dim iGames As Integer, iTickets As Integer, i As Long, t As Integer, b As Integer wsArchive = Worksheets("Тиражи 2022") iGames = wsGame.Range("C1") 'количество тиражей iTickets = wsGame.Range("C2") 'количество билетов в каждом тираже i = 5 'первая строка в таблице таблИгра wsGame.Rows ( "6:1048576")。delete 'очищ処理 "t = 1のdelete' oth of t = 1 for b = 2022 to itickets '€1からigames (1, 1).Copy Destination:=wsGame.Cells(i, 10) 'копируем и вставляем специальной вставкой значений сгенерированные номера с листа Генератор wsNumbers.Range("G1:L4").Copy wsGame.Cells(i, 4) .PasteSpecial Paste:=xlPasteValues i = i + 11 Next b Next t End Sub  

黄色のセルに必要な初期パラメータを入力し、マクロを実行する必要があります 開発者 – マクロ (開発者 — マクロ) またはキーボードショートカット 他の+F8.

Excelでの宝くじシミュレーション

わかりやすくするために、ゲーム中のマネー残高の変化を反映して、累積合計を含む最後の列の図を作成することもできます。

Excelでの宝くじシミュレーション

異なる戦略の比較

現在、作成されたシミュレーターを使用して、2022 年の実際のドローでゲーム戦略をテストし、それがもたらす結果を確認できます。 各抽選で 1 枚のチケットをプレイすると、「プラム」の全体像は次のようになります。

Excelでの宝くじシミュレーション

ここに:

  • 発生器 は、各抽選で、ジェネレーターによって作成された (同じ重みを持つ) 乱数を選択するゲームです。
  • お気に入り は、各抽選で同じ数字を使用するゲームです – 過去 27 年間の抽選で最も頻繁に落ちた数字 (32、11、14、34、40、XNUMX)。
  • アウトサイダー – 同じですが、最も珍しいドロップダウン番号 (12、18、26、10、21、6) を使用します。
  • コー​​ルド – すべての抽選で、長い間落ちていない数字 (35、5、39、11、6、29) を使用します。

ご覧のとおり、大きな違いはありませんが、乱数ジェネレーターの動作は他の「戦略」よりも少し優れています。

Можно также попробовать играть бользим количеством билетов в каждом тираже, чтобы перекрыть больгее количество ва риантов (иногда для этого несколько игроков объединяются в группу)。

ランダムに生成された数字 (重みは同じ) を持つ XNUMX 枚のチケットで各抽選に参加する:

Excelでの宝くじシミュレーション

各抽選で、ランダムに生成された数字 (重みは同じ) で 10 枚のチケットをプレイします。

Excelでの宝くじシミュレーション

各抽選で乱数を使用して 100 枚のチケットをプレイする (重みは同じ):

Excelでの宝くじシミュレーション

彼らが言うように、コメントは不要です-すべての場合に預金の流出は避けられません🙂

コメントを残す