python生日 Python設定生日

2021-10-19 03:23:51 字數 975 閱讀 2782

你為什麼要模擬這個問題而不是用封閉的形式來解決這個問題?有乙個相當不錯的近似值,既快速又容易編寫**:import math

return 1 - math.exp(-num_people * (num_people - 1) / (2 * 365.0))

您還可以實現乙個非常好的「精確」解決方案(在引號中,因為在轉換為float時會丟失一些保真度):

^$做乙個模擬,你可以做這樣的事情。我使用列表而不是集合,因為可能性很小,這樣可以避免使用集合所做的額外工作:import random

def birthday_collision_simulate_once(num_people):

s = [false] * 365

for _ in range(num_people):

birthday = random.randint(0, 364)

if s[birthday]:

return true

else:

s[birthday] = true

return false

def birthday_collision_simulation(num_people, runs):

collisions = 0

for _ in range(runs):

if birthday_collision_simulate_once(num_people):

collisions += 1

0.40580512747932584

>>> closed_form_exact_birthday_collision_probability(20)

0.41143838358058

>>> birthday_collision_simulation(20, 100000)

0.41108

當然,這麼多次執行的模擬更接近實際的41.1%,計算起來要慢得多。我會選擇乙個封閉形式的解決方案,這取決於它需要多精確。在

python 正則匹配生日

import re line 出生於2001年6月1日 line 出生於2001年06月01日 line 出生於2001年6月 line 出生於2001 06 01 line 出生於2001 06 01 line 出生於2001 06 line 出生於2001 6 1 line 出生於2001 6 ...

python 生日悖論概率計算。

生日悖論指如果乙個房間裡有23 或以上人,那麼至少有兩個人生日相同的 概率大於50 編寫程式,輸出在不同隨機樣本數量下,23 個人中至少兩個人生日相同的概率。from random import randint def list birth list birth for i in range 23 ...

python 生日悖論概率計算。

生日悖論指如果乙個房間裡有23 或以上人,那麼至少有兩個人生日相同的 概率大於50 編寫程式,輸出在不同隨機樣本數量下,23 個人中至少兩個人生日相同的概率。from random import randint def list birth list birth for i in range 23 ...