2015-06-07 2 views
-1

Мне нужен float или integer, не совсем сгенерированный, но выбранный случайным образом.Как вы производите определенное случайное число?

Нужно ли использовать и импортировать math.random class?

Например, у меня есть 3 целых числа: 1, 6 и 3. Я хочу, чтобы один из них был выбран случайным образом.

ответ

4

Создание случайного индекса из чисел, которые вы хотите, а затем взять номер с array

int []nums = {1,3,6}; 
int max = nums.length - 1; 
int min = 0; 
Random rand = new Random(); 
int randomNum = rand.nextInt((max - min) + 1) + min; 
System.out.println(nums[randomNum]); 
2

Сделать массив разрешенных номеров (т.е. new int[] {1, 6, 3}), а затем выбрать в диапазоне от 0 случайного int. .length-оф-массива. Выбор значения при случайном индексе даст результат, который вы хотите.

0

Скажет у вас есть массив (надеюсь, вы знаете, что что есть) из номеров вы можете сделать:

int choose = myNumbers[(int)Math.random() * myNumbers.length]; 
3

Если вы хотите, чтобы каждый из ваших трех значений, но в случайном порядке, то вам могут помещать их в массив. И, перетасовывая этот массив, вы можете использовать Arrays.asList(T...) и Collections.shuffle(List). Затем итерации значений в массиве (возможно, с for-each loop). Что-то вроде

public static void main(String[] args) { 
    Integer[] arr = new Integer[] { 1, 6, 3 }; 
    Collections.shuffle(Arrays.asList(arr)); 
    for (int i : arr) { 
     System.out.println(i); 
    } 
} 

Но, если вам действительно нужно выбрать только один случайное значение в то время (скажем, в 10 раз), то вы можете использовать Random и nextInt(int) и for петлю. Это может выглядеть примерно так:

public static void main(String[] args) { 
    int[] arr = new int[] { 1, 6, 3 }; 
    Random rand = new Random(); 
    for (int i = 0; i < 10; i++) { 
     int index = rand.nextInt(arr.length); 
     System.out.println(arr[index]); 
    } 
} 
0

Вам необходимо создать массив со значениями, которые вы хотите получить случайным образом. Как это:

int [] values = {1,3,6}; 

И вы никогда не должны забывать ставить:

Random rand = new Random(); 

Потому что, если вы не поставить его в случайном порядке функция не работает должным образом.

Итак, то теперь вы можете получить доступ к вашему значению случайно, как это:

int numObtained = rand.nextInt((values.length - 0) + 1) + 0; 

Конечный код будет:

int [] values = {1,3,6}; 
Random rand = new Random(); 
int numObtained = rand.nextInt((values.length - 0) + 1) + 0; 

Я ожидаю, что это помогает вам!

0

Это может помочь.

int i[] = new int[]{3,4,6, 5, 8, 10, 14}; // given sets of array 
int randomIndex = (int) (Math.random() * i.length); // generates a random index 
System.out.println("random selected value " + i[randomIndex]); 
Смежные вопросы