【发布时间】:2017-11-04 18:15:06
【问题描述】:
我执行了这串代码:
int newOrderLow = ThreadLocalRandom.current().nextInt(50, shipCapacity / 3);
int newOrderUp = ThreadLocalRandom.current().nextInt(newOrderLow, shipCapacity + 1); // not lower than lower value
int newOrderMid = ThreadLocalRandom.current().nextInt(newOrderLow, newOrderUp + 1); // in between
Log.d(TAG, "New Order: {" + newOrderLow + ", " + newOrderMid + ", " + newOrderUp + "}");
并开始调试它。例如,当我将 shipCapacity 设置为 600 时,我在控制台中记录了这些数字:
New Order: {493, 772, 672}
有一件事是上限不在[lower value;船舶容量 + 1], 另一个是中间值结果。那么问题是什么?如何使用 ThreadLocalRandom 正确生成随机整数?
【问题讨论】: