def simulate(N, p):
import random
"""
降水確率を p とする。
乱数シミュレーションして、置き傘が N 本になるまでの回数を返す。
"""
a, b = 0, 0
t = 0 # 移動回数
while True:
t += 1
r = random.random()
if r < p:
# 雨が降った
if a == 0:
# 購入
a += 1
a, b = b + 1, a - 1
else:
# 雨が降らない
a, b = b, a
if a == N:
return t
N, p = 10, 0.3
result = [simulate(N, p) for _ in range(10 ** 5)]
print(sum(result) / len(result))