Загрузка...

PythonプログラミングノックDay369 初心者向けゲーム #プログラミング #python #初心者

初心者向けのPythonのプログラミング問題です。入門編としてチャレンジしてください。Pythonの正答例は以下になります。
問題1096
import random
import math

def estimate_pi(n=10000):
"""モンテカルロ法で円周率を推定します。"""
inside = 0
for _ in range(n):
x = random.random()
y = random.random()
if x*x + y*y ≤ 1.0:
inside += 1
pi_est = 4 * inside / n
print(f"推定π: {pi_est}, 誤差: {abs(math.pi - pi_est)}")
return pi_est

# 使用例
estimate_pi(5000)
問題1097
def dice_sum_simulation(n=10000):
"""サイコロ2個の和の分布をモンテカルロで調べます。"""
from collections import Counter
counter = Counter()
for _ in range(n):
a = random.randint(1, 6)
b = random.randint(1, 6)
counter[a + b] += 1
for s in range(2, 13):
count = counter[s]
print(f"和={s}: {count} 回, 割合={count/n:.3f}")

# 使用例
dice_sum_simulation(5000)
問題1098
def has_three_heads_in_a_row(trials=10):
"""trials回コインを投げて、表3連続があるかどうか。"""
streak = 0
for _ in range(trials):
if random.random() < 0.5: # 表
streak += 1
if streak &ge 3:
return True
else:
streak = 0
return False

def estimate_three_heads_probability(trials=10, sims=10000):
"""表3連続が出る確率をシミュレーションで推定。"""
success = 0
for _ in range(sims):
if has_three_heads_in_a_row(trials):
success += 1
prob = success / sims
print(f"表3連続が少なくとも1回出る確率(試行{trials}回): {prob:.3f}")
return prob

# 使用例
estimate_three_heads_probability(10, 5000)

Видео PythonプログラミングノックDay369 初心者向けゲーム #プログラミング #python #初心者 канала できる!プログラミング
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять