大家好我有這樣的命令:如何停止除第一次以外的每次生成的隨機?
for (z = 0; z < utenti.length; z++) {
utenti[z] = rand.nextInt(1000) + 1;
}
,它的完成產生1和1000我希望它停止之間的隨機數之後,命令是我在程序的功能之一,但每次我記得號碼再次隨機生成。第一次之後有沒有辦法阻止隨機發電?
大家好我有這樣的命令:如何停止除第一次以外的每次生成的隨機?
for (z = 0; z < utenti.length; z++) {
utenti[z] = rand.nextInt(1000) + 1;
}
,它的完成產生1和1000我希望它停止之間的隨機數之後,命令是我在程序的功能之一,但每次我記得號碼再次隨機生成。第一次之後有沒有辦法阻止隨機發電?
有沒有辦法在第一次後停止隨機生成?
是的。第一次後不要執行該代碼。例如:
if (firstTime) {
for (z = 0; z < utenti.length; z++) {
utenti[z] = rand.nextInt(1000) + 1;
}
firstTime = false;
}
我你不想兩次運行這段代碼,那麼你爲什麼要調用它兩次?
由於這段代碼只需要執行一次,因此可能是錯誤的地方。它可能屬於構造函數或其他東西,具體取決於您的程序結構。
boolean
跟蹤它是否是第一次還是不行。這對你來說可能是最簡單的選擇。除了另一個答案,還要注意一個Random
類的構造函數接受一個種子。如果保持種子相同,則僞隨機數的順序將相同。這爲您節省了utenti
陣列的內存使用情況,特別是對於大型陣列。
private long seed;
private void determineSeed() {
long seed = new Random().nextLong();
}
然後用:
Random rand = new Random(this.seed);
for (int i = 0; i < utenti.length; i++) {
int number = rand.nextInt(1000) + 1);
// Don't save it to an array, do something with number
}
的缺點是,你可以在序列(例如,utenti[i]
)不使用特定的元素,你必須按順序使用隨機數。
但我其實需要回想一下具體的元素。我的數組目前有50個單元格,如果我需要回憶一個特定的單元格,那麼這個代碼將不起作用呢?例如:我記得用戶30,他有20美元的隨機生成,我加10 $,所以他有30美元,我再次回憶用戶30,現在他有另一個隨機生成的數額,而不是30美元,他應該有。 – Zabusy
爲什麼不把數字保存到變量中? –
此代碼必須屬於類中的方法。你能否告訴我們該課程的相關部分,特別是提到的方法和'utenti'數組? – Seelenvirtuose
爲什麼你每次都要回憶它?你不能簡單地使用具有數字的'utenti []'變量嗎?如果你更清楚地解釋你的意圖會有幫助。 –