欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 模擬傳染病

Python 是一種常用的編程語(yǔ)言,在數(shù)據(jù)科學(xué)領(lǐng)域廣受歡迎。今天我們將通過(guò) Python 模擬傳染病的傳播過(guò)程。

# 導(dǎo)入必要的庫(kù)
import numpy as np
import random
import matplotlib.pyplot as plt
# 設(shè)定參數(shù)
num_people = 1000 # 總?cè)藬?shù)
num_affected = 20 # 初始感染人數(shù)
contact_rate = 0.2 # 接觸率
infectious_rate = 0.04 # 感染率
recovery_rate = 0.01 # 治愈率
num_days = 100 # 模擬天數(shù)
# 生成人員位置,并隨機(jī)選擇一些人員感染
positions = np.random.uniform(size=(num_people, 2))
is_affected = np.zeros(num_people, dtype=bool)
is_affected[:num_affected] = True
np.random.shuffle(is_affected)
# 開(kāi)始模擬傳播過(guò)程
for day in range(num_days):
# 每個(gè)人隨機(jī)選取一定數(shù)量的朋友進(jìn)行接觸
for person_id, person_pos in enumerate(positions):
if not is_affected[person_id]:
continue
for friend_id, friend_pos in enumerate(positions):
if friend_id == person_id or random.random() >contact_rate:
continue
dist = np.linalg.norm(person_pos - friend_pos)
if dist< infectious_rate:
is_affected[friend_id] = True
# 一定比例的感染者治愈
is_affected[np.random.choice(np.where(is_affected)[0], size=int(num_affected*recovery_rate), replace=False)] = False
# 統(tǒng)計(jì)感染人數(shù)并畫(huà)圖
num_affected = np.sum(is_affected)
plt.plot(day, num_affected, 'ro')
# 添加標(biāo)簽
plt.title('Simulation of Infectious Disease')
plt.xlabel('Days')
plt.ylabel('Number of Affected People')
# 展示模擬結(jié)果
plt.show()

這段代碼通過(guò)使用 numpy、random 和 matplotlib 庫(kù),模擬了傳染病的傳播過(guò)程。通過(guò)設(shè)定初始感染人數(shù)、接觸率、感染率、治愈率和模擬天數(shù),可以得到傳染病在人群中的傳播趨勢(shì),并用 matplotlib 包中的繪圖函數(shù)將其可視化。這種模擬可以幫助我們更好地理解傳染病的傳播和防控,對(duì)于疾病預(yù)防和控制有重要的意義。