始める無料で始める

損益分岐となる宝くじの価格を計算する

シミュレーションを使うと、解析的に簡単に解けないような、より踏み込んだ問いを立てられます。複雑な数式を解く代わりに、多数のサンプル結果を直接得られます。入力を変えてその影響を調べる実験も可能です。たとえば、地球規模の気象パターンのモデルがある程度妥当であれば、温室効果ガスの増加がもたらす影響を評価できます。

宝くじの例では、買う意味がなくなるのはチケットがいくらのときかを知りたいかもしれません。これを理解するには、期待収益が負になるのがいつかを見るために、チケットの価格を変更していく必要があります。

grand_prizenum_ticketschance_of_winning は環境に読み込まれています。

この演習はコースの一部です

Pythonで学ぶ統計シミュレーション

コースを見る

演習の手順

  • sims を 3000 に、lottery_ticket_cost 変数を 0 に設定します。
  • outcomes の平均値が 0 を下回ったら、while ループを break で抜けます。
  • それ以外の場合は、lottery_ticket_cost を 1 ずつ増やします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Initialize simulations and cost of ticket
sims, lottery_ticket_cost = ____, ____

# Use a while loop to increment `lottery_ticket_cost` till average value of outcomes falls below zero
while 1:
    outcomes = np.random.choice([-lottery_ticket_cost, grand_prize-lottery_ticket_cost],
                 size=sims, p=[1-chance_of_winning, chance_of_winning], replace=True)
    if outcomes.mean() < 0:
        ____
    else:
        ____ += 1
answer = lottery_ticket_cost - 1

print("The highest price at which it makes sense to buy the ticket is {}".format(answer))
コードを編集して実行