在过去的52周里,我希望有一个累计数量的母猪进入水槽(deadSowsCulledSows和sowDeaths)。我使用循环事件为每周在这些汇点的母猪死亡创建了变量。我希望这个累积的数字是为每周的模拟计算。例如,在第10周--我希望有一个第1到10周的累计死亡人数;在第52周--我想拥有第1至52周的累计死亡人数,以及第53周的累计死亡人数--我希望在第2周和第53周之间有一个累积数字,以此类推。
有人建议我使用LinkedHashMap,我同意,但我不知道从哪里开始设置它?我想以周为价值,以每周死亡为关键。在哪里插入代码以便将值放入LinkedHashMap?
为了实现这一点,我觉得我缺少组件。


发布于 2022-05-30 07:03:33
听起来你想要一个过去52周的移动窗口。
这里有几个选项,但我建议您使用AnyLogic DataSet对象,因为它已经具有“保持最大数量的示例”功能,这正是您所需要的。

在接收器块中的


。
然后获取数据集的和,并将其保存到LinkedHasMap。
每周活动的代码如下所示
weekCounter ++;
deaths.add(weekCounter, weeklyDeaths);
weeklyDeaths = 0;
int tempSum = 0;
for (int i = 0; i < deaths.size(); i ++) {
tempSum += deaths.getY(i);
}
mapOfDeathsPerWeek.put(weekCounter, tempSum);其中,weekCounter只是我创建的另一个变量,我可以每周增加一个变量来跟踪每周的情况。
https://stackoverflow.com/questions/72380026
复制相似问题