python写一个病毒感染传播模型
时间: 2023-01-11 11:55:36 浏览: 81
在 Python 中,可以使用类似于下面这样的代码来模拟病毒感染传播:
```
import random
class Person:
def __init__(self, is_infected):
self.is_infected = is_infected
self.is_vaccinated = False
self.is_dead = False
def infect(self):
self.is_infected = True
def vaccinate(self):
self.is_vaccinated = True
def kill(self):
self.is_dead = True
class Virus:
def __init__(self, mortality_rate):
self.mortality_rate = mortality_rate
def infect(self, person):
if person.is_infected:
return
if random.random() < self.mortality_rate:
person.kill()
else:
person.infect()
def simulate(num_people, vaccination_rate, mortality_rate):
population = [Person(False) for _ in range(num_people)]
virus = Virus(mortality_rate)
for person in population:
if random.random() < vaccination_rate:
person.vaccinate()
infected_count = len([p for p in population if p.is_infected])
while infected_count > 0:
for person in population:
if person.is_infected:
for other_person in population:
if other_person is not person:
virus.infect(other_person)
infected_count = len([p for p in population if p.is_infected])
simulate(100, 0.8, 0.3)
```
这段代码定义了两个类:`Person` 和 `Virus`。`Person` 类用来模拟一个人,有三个属性:是否感染了病毒、是否接受了疫苗、是否死亡。`Virus` 类用来模拟病毒,有一个属性:致死率。
其中 `simulate` 函数用来模拟病毒感染传播的过程。它接受三个参数:总人数、接种疫苗的比率、致死率。在函数内部,首先初始化一个人群,然后给这个人群中的