【確率③】期待値は「未来の平均値」。投資とギャンブルの境界線をシミュレート

Python

「宝くじを買うのは無駄だ」と言う人もいれば、「投資もギャンブルと同じようなものだ」と言う人もいます。これらは単なる個人の感想なのでしょうか?

いいえ、数学の世界には、その境界線を鮮やかに描き出す「期待値」という明確な基準が存在します。

前回の記事では、Pythonを使って「確率は試行回数を増やすほど理論値に収束する」ことを確かめました。今回はその知識をさらに一歩進め、「その勝負、結局のところ得なのか、損なのか」という、私たちのサイフに直結する問題を解き明かしていきます。

期待値を理解し、シミュレーションできると、目の前のチャンスが「着実な投資」なのか「無謀なギャンブル」なのかが、数字として見えるようになります。

確率とプログラミングの力で、感情や運に左右されない「意思決定の羅針盤」を手に入れましょう。

第1章:期待値とは『1回あたりの平均報酬』

期待値とは、「何かの勝負を何度か繰り返したとき、1回あたり平均してどれくらいの利益に落ち着くか」という数値です。

ここで大切なのは、期待値を「未来の平均値」と捉える視点です。

1.1. 平均値と期待値の違い

これまでの学校教育で学んできた「平均値」は、過去のデータを集計したものだったかと思います。
それに対し、「期待値」は、計算によって未来の平均値を導き出すことと言えます。

  • 平均値: 5人がテストを受け、結果の点数を合計して5で割ったもの(過去の結果の平均
  • 期待値: サイコロを振って1が出たら600円もらえるとき、将来的に1回あたり何円もらえると予測できるか(未来の試行の平均

1.2. 計算の仕組みをイメージする

例えば、次のようなシンプルなゲームを考えてみましょう。

サイコロを振り、1の目が出たら600円もらえる。それ以外の目が出たら何ももらえない。

このゲームの期待値は、次のように計算できます。

  1. もらえる金額:600円
  2. その確率:\(\displaystyle \frac{1}{6}\)
  3. 期待値:\(\displaystyle 600 \times \frac{1}{6} = 100\)円

誤解のないよう申し添えておくと、この「100円」という金額は、1回振って100円がチャリンと出てくるという意味ではありません。
実際のプレイ1回では、0円か600円のどちらか一方しか起こりませんよね。

しかし、このゲームを1万回、10万回と繰り返したとしたら、最終的に手元に残る合計金額を回数で割ったとき、1回あたりの平均的な取り分は限りなく100円へと収束していきます。

つまり、期待値とは「膨大な試行を前提とした、1回あたりの取り分の理論値」のことです。
言い換えれば、期待値が、攻めるか退くかを判断するための「最も客観的なモノサシ」となるのです。

第2章:ギャンブルの「不利な構造」を理解する

期待値の正体がわかれば、世の中のあらゆる勝負事に対して「冷静な判断」ができるようになります。
なぜなら、その勝負が「やればやるほど得をするものか、それとも損をするものか」が、参加する前から計算できるからです。

ここで重要になるのが、「参加費」と「期待値」の比較です。

2.1. 「参加費 = 期待値」なら公平な勝負

例えば、第1章で例に挙げたサイコロゲームの参加費が1回につき100円だったとします。
計算した結果、期待値も100円でしたよね。

したがって、これは数学的に見て「五分五分(フェア)」な勝負であると判断できます。
長く続けても、理論上は損も得もしません。

2.2. ギャンブルで大多数が「負ける」理由

世の中のほとんどのギャンブル(宝くじ、競馬、カジノなど)は、次のような不平等な設計になっています。

「参加費 > 期待値」

例えば、ある宝くじの期待値を計算してみると、1枚300円の購入価格に対して、期待値がわずか140円~150円程度しかないことがあります。
これは、「300円を支払って、約150円分の価値を買い続けている」という状態です。

2.3. 「テラ銭」という壁

なぜこんなことが起きるのでしょうか。それは、ゲームを主催する側(胴元)が、運営費や利益として最初にお金を差し引いているからです。
この手数料を業界では「テラ銭」と呼びます。

このテラ銭の存在により、ギャンブルはスタートした瞬間に「期待値が参加費を下回る」ように設計されています。
つまり、数学的に見れば「負けることが約束された勝負」なのです。

2.4. 「一人の勝者」と「数百万人の敗者」

ここで一つの疑念が頭をよぎります。
「宝くじで1億円当たった人は、大儲けしているじゃないか」という視点です。

確かに、個人の体験として見れば、期待値を大幅に超える利益を得る人は存在します。
しかし、ここで前回の記事で学んだ視点を思い出してください。

確率は回数が増えるほど理論値に収束します。

「一人の購入者が1億回買う」のも、「1億人が1枚ずつ買う」のも、数学的な結果(合計金額の収束先)は同じです。
宝くじが日本中で何億枚と売られるとき、その膨大な試行回数によって、社会全体で見れば「1枚あたりの収支は、理論上の期待値であるマイナス約150円の近傍へと引き寄せられていく」ことになります。

つまり、誰かの一攫千金という「プラスの偏り」は、計算通りに発生した「数百万人の確実な負け」という膨大な「マイナスのデータ」によって相殺され、全体としては設計図(期待値)通りの赤字へと収束していくのです。

2.5. 「運」が「計算」に負ける瞬間

ギャンブルの本質は、「誰かは勝つ」という「偏り」を売っている点にあります。
ギャンブルにはまっていく人の多くは、「自分こそが、その誰かになる」というはかない夢にすがってしまう場合が多いのでしょう。

もちろん短期的には、運という名の「偏り」が期待値を上回ることもあります。
しかし、あなたがその勝負を「一生の習慣」にした瞬間、試行回数が積み重なるにつれて、「いつかは勝てる」という幻想は消え去り、期待値という名の冷徹な数字が現実として姿を現します。

第3章:シミュレーションで「期待値」を体感する

「期待値マイナスなら負ける」と頭では分かっていても、心のどこかで「次こそは運良く勝てるのでは?」という誘惑が消えないのが人間です。

そこで、Pythonを使って「一生分の夢」をわずか数秒でシミュレートしてみましょう。

3.1. シミュレーションの仕様

このプログラムでは、当選額最大1億円という「巨大な偏り」を組み込み、一人の人生分の投資結果がどうなるかを計算します。

今回は、現実の宝くじに近い構造をモデル化します。
約50年間、毎日10枚(1枚300円)を買い続けたと仮定し、合計18万回の抽選に挑みます。
総投資額は5,400万円です。

プログラムの仕様(当選金額と各確率の設定)は以下の通りです。

等級金額確率
1等1億円1/10,000,000
1,000万分の1。一生で当たる確率は約1.8%
2等100万円1/100,000
10万分の1。一生で数回かすめるかどうかの壁
3等3,000円1/100
100枚に1枚。時々当たる「嬉しい小当たり」
4等300円1/10
10枚に1枚は必ず入っている「お返し」
ハズレ0円残りすべて
約90%がこの結果に終わる

18万枚も購入すれば、1枚くらいは1億円のアタリくじが入っていそうな気がしませんか?
その直感を数学がどのように判断(計算)するか、Pythonで検証してみましょう。

3.2. 宝くじ生涯シミュレーター(lottery_lifetime_sim.py)

実際に動作させたい方は、新規ファイル lottery_lifetime_sim.py を作成し、以下のプログラムをコーディングしてください。

lottery_lifetime_sim.py
import random

trials = 180000     # 一生かけて18万枚購入(約5,400万円分)
ticket_price = 300
wallet = 0

for _ in range(trials):
    wallet -= ticket_price # 300円を支払う
    
    rand = random.random() # 0.0〜1.0の乱数を生成
    
    # 当選判定
    if rand < 1 / 10000000:       # 1等
        wallet += 100_000_000
    elif rand < 1 / 100000:       # 2等
        wallet += 1_000_000
    elif rand < 1 / 100:          # 3等
        wallet += 3_000
    elif rand < 1 / 10:           # 4等
        wallet += 300
    # それ以外(約90%)はwallet加算なし(ハズレ)

print(f"一生({trials:,}枚)買い続けた最終収支: {wallet:,}円")

実行結果は次の通りです。
10回実行、つまり仮想現実のギャンブラー10人分の人生をシミュレートしてみました。

実行結果
一生(180,000枚)買い続けた最終収支: -41,676,400円
一生(180,000枚)買い続けた最終収支: -42,842,300円
一生(180,000枚)買い続けた最終収支: -43,465,800円
一生(180,000枚)買い続けた最終収支: -43,599,900円
一生(180,000枚)買い続けた最終収支: -39,734,600円
一生(180,000枚)買い続けた最終収支: -41,649,400円
一生(180,000枚)買い続けた最終収支: -42,750,500円
一生(180,000枚)買い続けた最終収支: -43,692,000円
一生(180,000枚)買い続けた最終収支: -42,636,500円
一生(180,000枚)買い続けた最終収支: -42,653,000円

5,400万円を投じた結果、平均してマイナス4,000万円前後です。
見事なまでの大赤字ですね。

3.3. 「期待値」を計算して数学的に大赤字を実証する

今回の結果を踏まえ、この宝くじの「期待値(1枚あたりの平均報酬)」を計算してみましょう。
期待値は、「当選金 × 当選確率」をすべての等級で足し合わせることで求められます。

なぜ「金額 × 確率」で平均が出るのでしょうか?

例えば、「10枚に1枚、300円が当たるくじ」を考えます。
10枚買ったときの合計当選金は300円。1枚あたりの平均は \(300円 \div 10枚 = 30円\) です。
この計算は、\(\displaystyle 300円 \times \frac{1}{10}\)(確率) と書き換えることができますね。
つまり、期待値とは「当選したときの報酬を、その当選率に応じて一律に分配したらいくらになるか」を計算しているのです。

この考え方に則り、今回の宝くじ1枚あたりの「取り分」をすべて足し合わせます。
(各当選金額から購入代金300円を差し引いて計算しています)

  • 1等の期待報酬:
    • \(\displaystyle +99,999,700円 \times \frac{1}{10,000,000} \approx +10円\)
  • 2等の期待報酬:
    • \(\displaystyle +999,700円 \times \frac{1}{100,000} \approx +10円\)
  • 3等の期待報酬:
    • \(\displaystyle +2,700円 \times \frac{1}{100} = +27円\)
  • 4等の期待報酬:
    • \(\displaystyle 0円 \times \frac{1}{10} = 0円\)
  • ハズレの損失:
    • \(\displaystyle -300円 \times \frac{8,889,889}{10,000,000} \approx -267円\)

これらを合計した期待値は、1枚あたり「約\(-220\)円」となります。
1枚買うたびに220円を捨てているのと同じですから、18万回繰り返せば、\(-220 \times 180,000 = -3,960\)万円

実行結果の約4,000万円のマイナスは、プログラムを動かす前から数学的に「約束された結果」だったと言えます。

第4章:投資とギャンブルの境界線

これまで見てきたように、ギャンブルの多くは「期待値がマイナス」に設定されています。
では、数学的な視点に立ったとき、「ギャンブル」と「投資」は何が違うのでしょうか。

4.1. 期待値がプラスの投資(されど「波」には注意)

投資(株式投資など)の最大の特徴は、長期的な期待値がプラスであると考えられている点です。

例えば、年利3%の期待報酬がある投資先に、宝くじと同条件の金額「毎月90,000円(1日10株 \(\times 300円\))」を50年間積み立てたとしましょう。

50年後の「収束先」はこれほどまでに異なります。

  • 宝くじ(期待値マイナス): 50年後、資産は統計的平均である 約4,000万円の損失 へと収束する。
  • 投資(期待値プラス): 50年後、資産は統計的平均である 約7,400万円の利益(最終資産 約1.3億円)へと収束する。

もちろんこれは、株価の変動(ボラティリティ)などの条件を度外視した理論上の計算であって、現実の株式投資では資産が直線的に増え続けるわけではないことに注意が必要です。

しかし、どれほど一時的に振れたとしても、「試行回数を重ねるほどプラスの平均値へ近づいていく構造」を持っている事実は揺るぎなく、それが投資とギャンブルを分ける決定的な違いです。

4.2. 運命を分ける「0」の境界線

「投資」と「ギャンブル」を分かつ境界線は、感情やスリルではなく、「期待値が0を超えているかどうか」の一点に集約されます。

  • 期待値 < 0(ギャンブル): 続ければ続けるほど、負ける確率が100%に近づく「搾取の構造」。
  • 期待値 > 0(投資): 続ければ続けるほど、利益が出る確率が高まっていく「成長の構造」。

数学的な「土俵」そのものがプラスであるかマイナスであるかは、50年というスパンで見たときに、家一軒分を優に超える「1億円以上の格差」となって現れます。

まとめ:Pythonで「運」を「数」に変える

今回のシミュレーションを通じて、私たちが一生の時間をかけて体験する「運」の結果を、Pythonはわずか1秒もかからず可視化してくれました。

  • 期待値を知る: 仮想宝くじ1回あたりの平均報酬(-220円)を導き出し、その絶望的な少なさを理解しました。
  • 冷徹な実証: シミュレーションにより、期待値がマイナスの勝負を繰り返すと、一生単位で約4,000万円もの損失に収束することを計算により実証しました。
  • 境界線の判断: 期待値が0を超えるかどうかが、ギャンブルと投資を分ける科学的な境界線であることを学びました。

「期待値」という概念を知ることは、単に計算が得意になることではありません。
目の前の誘惑が「プラスの期待値を持つチャンス」なのか、それとも「数学的に約束された損失」なのかを冷静に判断する力を養うことです。

あなたが今下そうとしているその決断、「期待値」はプラスですか?

コメント

タイトルとURLをコピーしました