在AnyLogic中如何为集装箱码头仿真生成随机整数(三角分布等)
集装箱码头仿真模型随机生成集装箱问题解决
- 核心错误:你误用了Source模块的方法。
inject()是用来注入单个集装箱Agent的,而你需要批量生成多个,应该用injectN(int count)方法。 - 修正后的代码示例:
或者用均匀离散分布:// 用三角分布生成150-300之间(众数200)的随机整数数量集装箱 sourceContainers1.injectN((int) triangular(150, 200, 300));// 生成70-90之间的随机整数数量集装箱 sourceContainers1.injectN(uniform_discr(70, 90)); - 补充说明:
- AnyLogic的
triangular(min, mode, max)返回double类型,直接强转int就可以,没必要额外套Math.floor或Math.round(用了也不影响,但纯属多余)。 - 确认
sourceContainers1是对应集装箱Agent的Source模块,且模块的「Type of entities」设置正确(比如关联了你自定义的集装箱Agent类)。 - 如果仍报错,检查函数拼写(比如
uniform_discr是正确写法,别写成驼峰式)或参数合理性(比如uniform_discr的最小值不能大于最大值)。
- AnyLogic的
内容的提问来源于stack exchange,提问作者sunyeong Jeong
相关产品推荐
相关产品推荐

