2015-10-07 82 views
-1

嗨我想洗牌我的ArrayList沒有隨機數發生器,但只能使用一個隨機數。有沒有辦法做到這一點?隨機ArrayList沒有隨機數

該算法應基於以下幾點:的ArrayList

  • 大小(非零)中的ArrayList
  • 隨機數(每個項目的
  • 索引不能內循環產生,只有一個隨機數可以產生)

例如

int randomNumber = new Random(10).nextInt(); 
    myList = shuffle(myList, randomNumber) 

    public ArrayList<> shuffle(ArrayList<> myList, int randomNumber){ 
     for(int index = 0 ; index < myList.size() ; index++){ 
     //shuffle algorithm working 
     } 
    return myList; 
    } 
+4

聽起來像一個家庭作業;) – wblaschko

+5

我投票結束這個問題作爲題外話,因爲你必須自己做你的家庭作業 –

+0

@wblaschko:D不是那樣,我正在尋找想法達到解決方案 –

回答

1

與你的想法相反,僞隨機數是確定性的。從相同的種子,你總是得到相同的序列。只需使用randomNumber的值來初始化發生器。

實際上,算術絕對不能產生真正的隨機性。

+1

真正的隨機性可以通過監控您的程序外部因素來處理,例如掛鐘時間或系統活動(正在運行的進程的數量,預留的內存,I/O數量...) –

+0

讓我檢查 –

+0

的工作原理,thanx for你的資料 –