Как я могу запрограммировать многоступенчатый случайный выбор?

Пример: у меня 3 int: "1; 2; 3"
После первого раунда осталось только 2. Например: «2; 3»
И в последнем туре останется номер «3».
Все это произошло случайно.

Как я могу запрограммировать это на Java?

-1
Wilhelm Müller 26 Окт 2015 в 22:35

2 ответа

Лучший ответ

Иметь ArrayList или Set из int. Используйте Random.nextInt(), чтобы получить случайный индекс, который меньше размера коллекции, а затем получить к нему доступ и удалить его. Таким образом, никакие два числа не будут повторяться. Вы можете использовать это для int или чего угодно. Другая идея - использовать Collections.shuffle.

Дополнительная информация: Выбор случайного элемента из набора

2
Community 23 Май 2017 в 12:29

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

Random rnd = new Random();

int numOfInputs = 3;
int[] listOfNums = new int[]{1,2,3};
int removeIndex = 0;

for(int r = 0; r < numOfInputs; r++) {

  removeIndex = rnd.nextInt(numOfInputs);
  listOfNums[removeIndex] = 0;

  // Print the list
  for(int p = 0; p < numOfInputs; p++) {
    if(listOfNums[p] > 0) {
      System.out.print(listOfNums[p] + ";");
    }
  }

}
0
Rane1011 26 Окт 2015 в 19:45