Netlogo 如何正确模拟感染率?

Netlogo 如何正确模拟感染率?,netlogo,agent-based-modeling,Netlogo,Agent Based Modeling,我通过在封闭环境中模拟病毒感染率来练习我的Netlogo技能。我提出的模拟运行良好,但在审查结果后,在代理如何感染其他代理方面似乎有些不对劲。这是我的“感染”代码(“正常人”是健康人,“携带者”则相反): 询问承运人[ 如果有的话?这里还有其他法线吗[ 让r随机取50 如果r

我通过在封闭环境中模拟病毒感染率来练习我的Netlogo技能。我提出的模拟运行良好,但在审查结果后,在代理如何感染其他代理方面似乎有些不对劲。这是我的“感染”代码(“正常人”是健康人,“携带者”则相反):

询问承运人[
如果有的话?这里还有其他法线吗[
让r随机取50
如果r<50[设置病毒?错误]
如果r<50+传染性[
在此处询问正常值[设置病毒?真]
在此处询问法线[设置红色]
]
]
]
我的总体想法是,在携带者和正常代理之间的同一个补丁上的交互中,如果正常代理具有r+传染性(模拟中的受控变量,速率为0-50)=大于50的数字,那么该代理就会感染病毒。我希望每个正常的代理都有一个0-50的随机r变量,如果在添加“传染性”率时,该变量增长大于50,则该代理接收病毒。如果加上“传染性”率后r仍然低于50,则他仍然“正常”


我的代码看起来还好吗?我觉得这里好像有什么不对劲,但我看不太清楚。

只是针对你的特定代码:(1)假设携带者和正常人是不同的品种,你不需要其他的
,因为携带者无论如何都不会在
正常人中。(2) 你对随机数的使用并不像你想象的那样,但我无法解决如何修复它,因为逻辑根本不起作用


首先,为r创建一个从0到49的随机值。假设是20。谢谢你的评论,珍布!它帮助我认识到,我最初的问题是解决携带者而不是正常人,我没有正确地编写感染代码。我把这两种病毒分成了不同的品种,因为我只希望最初的携带者能够感染(据我所知,在感染某种病毒后,你不会立即感染),因为这个模型应该在120分钟内模拟封闭空间内的感染。
let num random 100
if num < 20 [ do something ]