Подтвердить что ты не робот

Как генерировать случайные положительные и отрицательные числа в java

Я пытаюсь генерировать случайные целые числа в диапазоне (-32768, 32767) примитивного типа данных. Объект java Random генерирует только положительные числа. Как я могу случайно создавать числа на этом интервале? Спасибо.

4b9b3361

Ответ 1

Вы случайно на (0, 32767+32768) вычитаете 32768

Ответ 2

Random random=new Random();
int randomNumber=(random.nextInt(65536)-32768);

Ответ 3

public static int generatRandomPositiveNegitiveValue(int max , int min) {
    //Random rand = new Random();
    int ii = -min + (int) (Math.random() * ((max - (-min)) + 1));
    return ii;
}

Ответ 4

Генерировать числа между 0 и 65535, а затем просто вычесть 32768

Ответ 5

Это старый вопрос, который я знаю, но ум...

n=n-(n*2)

Ответ 6

(Math.floor((Math.random() * 2)) > 0? 1: -1) * Math.floor((Math.random() * 32767))

Ответ 7

([мой примитивный примитивный тип здесь]) (Math.random() * [мое максимальное значение здесь] * (Math.random() > 0,5? 1: -1))

Пример:

// need a random number between -500 and +500
long myRandomLong = (long)(Math.random() * 500 * (Math.random() > 0.5 ? 1 : -1));

Ответ 8

В случае, если люди заинтересованы в двойной версии (обратите внимание, что это прерывается, если передано MAX_VALUE или MIN_VALUE):

private static final Random generator = new Random();
public static double random(double min, double max) {
    return min + (generator.nextDouble() * (max - min));
 }