損益分岐となる宝くじの価格を計算する
シミュレーションを使うと、解析的に簡単に解けないような、より踏み込んだ問いを立てられます。複雑な数式を解く代わりに、多数のサンプル結果を直接得られます。入力を変えてその影響を調べる実験も可能です。たとえば、地球規模の気象パターンのモデルがある程度妥当であれば、温室効果ガスの増加がもたらす影響を評価できます。
宝くじの例では、買う意味がなくなるのはチケットがいくらのときかを知りたいかもしれません。これを理解するには、期待収益が負になるのがいつかを見るために、チケットの価格を変更していく必要があります。
grand_prize、num_tickets、chance_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))