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.
Sie (0, 32767+32768)
zufällig und subtrahieren dann 32768
Random random=new Random();
int randomNumber=(random.nextInt(65536)-32768);
public static int generatRandomPositiveNegitiveValue(int max , int min) {
//Random Rand = new Random();
int ii = -min + (int) (Math.random() * ((max - (-min)) + 1));
return ii;
}
Zahlen zwischen 0 und 65535 generieren, dann einfach 32768 abziehen
Dies ist eine alte Frage, die ich kenne, aber um ....
n=n-(n*2)
([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));
(Math.floor ((Math.random () * 2))> 0-1: -1) * Math.floor ((Math.random () * 32767))
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));
}