如何在NetLogo中结合已知概率使用random-float函数?
关于NetLogo random-float函数与智能体生成概率的验证问题
问题背景
我对random-float函数感到困惑,因为它生成的值严格小于输入的参数。在我的模型中,我希望按照以下概率生成7类智能体:
0.493 0.368 0.060 0.067 0.006 0.004 0.002
于是我将其转换为累积和:
0.493 0.861 0.921 0.988 0.994 0.998 1.000
编写的代码
随后我编写了如下代码:
ask patches [ while [sum [energy] of turtles < 1000] [ let choose-size random-float 1 if choose-size < 0.493 [ sprout-ones 1 ] if choose-size >= 0.493 and choose-size < 0.861 [ sprout-twos 1 ] if choose-size >= 0.861 and choose-size < 0.921 [ sprout-threes 1 ] if choose-size >= 0.921 and choose-size < 0.988 [ sprout-fours 1 ] if choose-size >= 0.988 and choose-size < 0.994 [ sprout-fives 1 ] if choose-size >= 0.994 and choose-size < 0.998 [ sprout-sixes 1 ] if choose-size >= 0.998 [ sprout-sevens 1 ] ]]
请求验证
能否帮忙验证这段代码?我尤其担心最后一类智能体的概率会被低估,因为random-float永远不会生成1.0。感谢帮助!
内容的提问来源于stack exchange,提问作者adkane
相关产品推荐
相关产品推荐

