2015-10-21 101 views
0

我試圖從異常數組中選取一個隨機元素。從異常數組中挑選一個隨機元素

例如,假設我有一個長度爲10的布爾數組,其中2個在隨機索引處設置爲true。我如何選擇一個隨機的假布爾值並將其設置爲true?

我希望這不是太模糊,英語不是我的第一語言。

回答

1

有很多方法可以做到這一點。發生在我的兩個主要途徑:

你可以使用一個while循環拿起一個隨機指數,直到它發現一個是假的:

boolean[] array = {false, true, false}; 
int index = int(random(array.length)); 
while(array[index]){ 
    index = int(random(array.length)); 
} 

或者你可以創建一個新的數組(或ArrayList中)只是都是假的指標,然後隨機從這個數組挑:

boolean[] array = {false, true, false}; 
ArrayList<Integer> indexes = new ArrayList<Integer>(); 
for(int i = 0; i < array.length; i++){ 
    if(!array[i]){ 
     indexes.add(i); 
    } 
} 
int index = indexes.get(int(random(indexes.size()))); 

請注意,你已經與標籤標記你的問題,所以我在這裏使用處理語法。但是這些方法在一般意義上也是有效的。

+0

謝謝,這應該幫助我! – SuperNewb

相關問題