假定甲型H1N1 型流感的潜伏期是5 天,发病期到治愈期为5 天。在潜伏期中没有传染
性,发病后到治愈期间的5 天内具有传染性,治愈后没有传染性。假定若是不采取任何
措施隔离的话,每个发病病人每天能新传染3 人。请写一个函数lCount,计算出从在不
采取隔离措施的前提下某一天起有一人感染上流感并处于潜伏期,到指定天数后的某一
天全部感染上甲型H1N1 型流感(包括感染过已治愈)的人数。
func ICount(let day:Int) -> Int{
//初始化,最开始只有一个人得H1N1
var patients = [Patient(day:1)]
for _ in 1...day {
for patient in patients {
//对于处于5-10天的病人,做增长
if patient.day > 5 && patient.day<=10 {
//每过一天,传染3个人
let growth = Array(count: 3, repeatedValue: Patient(day: 1))
patients += growth
}
}
//每过一天,所有病人的感染天数 +1
patients = patients.map({ (patient) -> Patient in
return Patient(day: patient.day+1)
})
}
return patients.count
}
for i in 1...12 {
print("day \(i): \(ICount(i))")
}