int[] r = new int[1000];
ExponentialDistribution exp = new ExponentialDistribution(4.0);
for(int i = 1; i <r.length; i++){
r[i] = (int)exp.sample() + 1 + r[i-1];
}
上面的代码将数组 [r] 从 r[0] = 0 填充到 r[999] = 4527。这是一次随机运行的结果。如果 r.length 增加到 2000,则最后一个元素 r[1999] 增加 8963。我试图找到将数组 [r] 填充在 0 - 5000 范围内的解决方案。即使 r.length 增加,数组也应该以指数方式填充在这个范围内。比如说在这种情况下,如果 r[999] <= 5000,那么 r[1999] 也应该 <=5000。
比如说,r.length 代表总数。事件和数组 r 的每个元素表示事件发生的时间。总时间为 5000 个单位。动机是第一个事件发生在时间 0,最后一个事件发生在时间 <=5000,即使 r.length 增加或减少,也应该相应地调整两个事件的发生时间。
非常感谢