2015-10-21 75 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

相关问题