>>771
Pythonでシミュレーション、FimoseくんがPythonは使えるようなフリをしていたのでRのコードをPythonに移植。
掲示板の仕様でインデントが乱れているかもしれん。


import numpy as np
import matplotlib.pyplot as plt

def sim(n=5):
a = np.random.choice([1, 2, 3, 4], size=4*n, replace=True, p=[1/10, 2/10, 3/10, 4/10])
count = 4 * n
while sum(a == 1) < 5 or sum(a == 2) < 5 or sum(a == 3) < 5 or sum(a == 4) < 5:
count += 1
new_sample = np.random.choice([1, 2, 3, 4], size=1, p=[1/10, 2/10, 3/10, 4/10])
a = np.append(a, new_sample)
return count

num_simulations = 10**4
results = [sim() for _ in range(num_simulations)]

print("Summary:")
print(f"Min: {min(results)}")
print(f"1st Qu.: {np.percentile(results, 25)}")
print(f"Median: {np.median(results)}")
print(f"Mean: {np.mean(results)}")
print(f"3rd Qu.: {np.percentile(results, 75)}")
print(f"Max: {max(results)}")

plt.hist(results, bins=30, color='red', density=True)
plt.title('Simulation Results')
plt.xlabel('Count')
plt.ylabel('Density')
plt.show()