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 [0] = 0到r [999] = 4527填充array [r]。这是一次随机运行。如果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增加或减少,两个事件的发生时间应相应调整。
非常感谢
请花些时间在下次提问 –
@ScaryWombat有什么不可理解的吗? –
你并不真正问一个问题。对于“ExponentialDistribution”类来自哪里的记录?一个简单的解决方案是,如果该号码不符合您的要求,那么不要使用它,寻找另一个号码。另外,如果你正在添加'i'(索引),那么随着索引的增长,数字 –