流行病模型(SIR Model)
by : ZhuoFei, Zhou
首先定义一个函数bernoulli(p)
#以概率p判断是否会被感染或恢复
function bernoulli(p::Number)
if rand(1)[1] < p
return true
else
return false
end
end
bernoulli (generic function with 1 method)
恢复所需的时间函数recovery_time(p)
function recovery_time(p)
if p ≤ 0
throw(ArgumentError("p must be positive: p = 0 cannot result in a recovery"))
end
recovered = false
days = 0
while !recovered
recovered = bernoulli(p)
days+=1
end
return days
end
recovery_time (generic function with 1 method)
测试一下这个函数的运行情况:
其中 p