2015-10-21 3 views
0

Я пытаюсь выбрать случайный элемент из массива с исключениями.Выбор случайного элемента из массива с исключениями

Например, допустим, что у меня есть логический массив с длиной 10, 2 из них имеют значение true при случайном индексе. Как я могу выбрать случайное ложное логическое значение и установить его в true?

Я надеюсь, что это не слишком расплывчато, английский не является моим первым языком.

ответ

1

Существует множество способов сделать это. Два основных подхода, которые происходят со мной:

Вы можете использовать цикл в то время как не определена случайный индекс, пока он нашел один, который был ложным:

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

Смежные вопросы