看板 java 關於我們 聯絡資訊
看到原PO的程式碼,不曉得亂數範圍是否需落在0~nodeNumber裡面。 所以就插一腳寫了個亂數有落在範圍內,且不重複的版本。 我也捨棄了originalRandomArray,有寫錯不要鞭我...囧 private List<Integer> randomArray; private void GenerateRandomArray(int node , double chance) { final int size = (int)(node * chance); Random random = new Random(); HashSet<Integer> set = new HashSet<Integer>(size , 1.0f); while(set.size() < size) for(int i = size - set.size() ; i >= 0 ; --i) set.add(random.nextInt(node)); randomArray = new ArrayList<Integer>(set); Collections.shuffle(randomArray); } node = 1,000,000 chance = 0.99 time = 10,250 ms -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.229.166.204