int totalRecs = getTotalRecs(); // returns '13'
int MAX_RECS_PER_LOOKUP = 10;
Random rand = new Random();
int start = (totalRecs > Utl.MAX_RECS_PER_LOOKUP) ? rand.nextInt(totalRecs-Utl.MAX_RECS_PER_LOOKUP) : 0;
results = this.getNewRecs(filter, start, start+1);
我正在使用此隨機數邏輯從數據庫中檢索記錄,基於表格行偏移量(start
高達start+1
)。爲什麼我的隨機數字不那麼隨機?
但由於某種原因它不斷重複相同的數字:start
值0和start
值3。
我試圖播種Random
對象,但它並沒有區別:
long seed = System.currentTimeMillis();
rand.setSeed(seed);
什麼是Utl.MAX_RECS_PER_LOOKUP?可能問題不是rand.nextInt,而是您的輸入將它限制爲可能整數的一小部分。 – 2010-11-11 13:39:35
發生了一些非常奇怪的事情。如果totalRecs真的是13,那麼你不應該得到3(因爲你傳遞3 nextInt,這是唯一的上限)。你可以嘗試打印totalRecs的值並檢查它是你的想法嗎?爲什麼您使用Utl.MAX_RECS_PER_LOOKUP而不是您剛剛設置的MAX)RECS_PER_LOOKUP? – 2010-11-11 13:39:42