所以我有點卡在這一個。我一直在努力尋找幾個小時,但我還沒有找到一個適合我的教授非常嚴格的參數的解決方案。用隨機排列填充數組
我必須用0-9的數字隨機排列填充數組,並且它們不能重複。我知道有很多這方面的話題,我已經找到了一些方法來做到這一點,但它不符合我們的要求。
所以我必須使用一個常規數組和一個給定種子的Random對象來填充具有唯一值的數組。我不能使用集合,ArrayLists,任何類型的迭代器,只是普通的循環。我甚至無法創建另一個類來執行此功能。
我的基本想法至今
for(int i=1; i<numItems; i++)
{
int count = 1;
int m=rand.nextInt(numItems);
for(int j=0; j<i; j++)
{
if(m==permutation[j])
{
m=rand.nextInt(numItems);
count++;
j=-1;
}
}
permutation[i]=m;
numAttempts[i]=count;
}
而這個作品完美,但我們不能修改環路內的控制變量(J)。
我基本上希望它從頭開始測試rand對象隨機生成的隨機數,如果語句是真的。
任何幫助,非常感謝。
編輯:他的產量
最簡單的解決方案是用獨特的值(簡單)填充數組,然後對其內容進行公平的洗牌。這避免了必須跟蹤哪些值尚未被看到,因爲它開始是獨特的,並且在每個混洗步驟之後仍然是唯一的。 – keshlam
我無法洗牌。它必須是一致的輸出,並且必須看起來完全像他的,不使用隨機播放。 – user3092589
你是什麼意思,它必須看起來完全像他?用相同的隨機種子進行混洗將是一致的。 – Blorgbeard