web-dev-qa-db-de.com

Wie man zufällige positive und negative Zahlen in Java generiert

Ich versuche, zufällige ganze Zahlen über den Bereich (-32768, 32767) des primitiven Datentyps short zu generieren. Das Java-Zufallsobjekt generiert nur positive Zahlen. Wie würde ich zufällig Zahlen für dieses Intervall erstellen? Vielen Dank.

27
user455497

Sie (0, 32767+32768) zufällig und subtrahieren dann 32768

52
pinichi
Random random=new Random();
int randomNumber=(random.nextInt(65536)-32768);
22
Truth
public static int generatRandomPositiveNegitiveValue(int max , int min) {
    //Random Rand = new Random();
    int ii = -min + (int) (Math.random() * ((max - (-min)) + 1));
    return ii;
}
5
duggu

Zahlen zwischen 0 und 65535 generieren, dann einfach 32768 abziehen

4
jcopenha

Dies ist eine alte Frage, die ich kenne, aber um ....

n=n-(n*2)
3
Ethan

([mein doppelt kompatibler primitiver Typ hier]) (Math.random () * [mein maximaler Wert hier] * * (Math.random ()> 0,5? 1: -1))

beispiel:

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

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

0
UP209D

Falls sich Leute für die Doppelversion interessieren (beachten Sie, dass dies bei MAX_VALUE oder MIN_VALUE nicht möglich ist): 

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