vui lòng xem tập lệnh Python sau cho Python2.
Câu trả lời được lấy cảm hứng từ câu trả lời của David C.
Câu trả lời cuối cùng của tôi sẽ là, xác suất tìm thấy ít nhất năm Jacob trong một lớp, với Jacob là tên có thể xảy ra nhất theo dữ liệu từ https://www.ssa.gov/oact/babynames/limits.html "Dữ liệu quốc gia "Từ năm 2006.
Xác suất được tính theo phân phối nhị thức với Jacob-Xác suất là xác suất thành công.
import pandas as pd
from scipy.stats import binom
data = pd.read_csv(r"yob2006.txt", header=None, names=["Name", "Sex", "Count"])
# count of children in the dataset:
sumCount = data.Count.sum()
# do calculation for every name:
for i, row in data.iterrows():
# relative counts of each name being interpreted as probabily of occurrence
data.loc[i, "probability"] = data.loc[i, "Count"]/float(sumCount)
# Probabilites being five or more children with that name in a class of size n=25,50 or 100
data.loc[i, "atleast5_class25"] = 1 - binom.cdf(4,25,data.loc[i, "probability"])
data.loc[i, "atleast5_class50"] = 1 - binom.cdf(4,50,data.loc[i, "probability"])
data.loc[i, "atleast5_class100"] = 1 - binom.cdf(4,100,data.loc[i, "probability"])
maxP25 = data["atleast5_class25"].max()
maxP50 = data["atleast5_class50"].max()
maxP100 = data["atleast5_class100"].max()
print ("""Max. probability for at least five kids with same name out of 25: {:.2} for name {}"""
.format(maxP25, data.loc[data.atleast5_class25==maxP25,"Name"].values[0]))
print
print ("""Max. probability for at least five kids with same name out of 50: {:.2} for name {}, of course."""
.format(maxP50, data.loc[data.atleast5_class50==maxP50,"Name"].values[0]))
print
print ("""Max. probability for at least five kids with same name out of 100: {:.2} for name {}, of course."""
.format(maxP100, data.loc[data.atleast5_class100==maxP100,"Name"].values[0]))
Tối đa xác suất cho ít nhất năm đứa trẻ có cùng tên trong số 25: 4.7e-07 cho tên Jacob
Tối đa xác suất cho ít nhất năm đứa trẻ có cùng tên trong số 50: 1.6e-05 cho tên Jacob, tất nhiên.
Tối đa xác suất cho ít nhất năm đứa trẻ có cùng tên trong số 100: 0,00045 cho tên Jacob, tất nhiên.
Theo hệ số 10 kết quả tương tự như David C. Cảm ơn. (Câu trả lời của tôi không tổng hợp tất cả các tên, có thể được thảo luận)