作业车间模型中,如何为生成的订单从4个固定时间均匀随机选截止日期?
实现订单截止日期等概率随机选择
你可以通过定义可选的小时集合,结合随机数生成器来实现需求,修改后的Event Action代码如下:
Order order = new Order(); // 定义可选的截止时间小时数 int[] dueHours = {18, 19, 20, 21}; // 生成0-3的随机索引,等概率选择小时 Random random = new Random(); int selectedHour = dueHours[random.nextInt(dueHours.length)]; // 设置截止日期 Calendar cal1 = Calendar.getInstance(); cal1.set(Calendar.HOUR_OF_DAY, selectedHour); cal1.set(Calendar.MINUTE, 0); cal1.set(Calendar.SECOND, 0); cal1.set(Calendar.MILLISECOND, 0); order.atrDueDate1 = cal1.getTime(); order.atrID = 10; order.markParametersAreSet(); enter.take(order);
关键说明:
- 数组
dueHours包含了所有允许的截止时间小时数,确保只能从指定的四个时间点中选择 random.nextInt(dueHours.length)会生成0到3的随机整数(数组长度为4),每个索引对应的小时被选中的概率完全相同(25%)- 其余时间字段(分、秒、毫秒)保持置0,确保截止时间是整点钟
内容的提问来源于stack exchange,提问作者Marloes
相关产品推荐
相关产品推荐

