Zufallszahlen in einem Wertebereich

vaporizer

Erfahrenes Mitglied
Hallo

also die Sache ist die:
ich will eine Zufallszahl erzeugen
erstens Ganzzahlen also int
und zweitens im Bereich von -50 bis 50
kann mir bitte jemand helfen

Schöne Grüße von vaporizer
 
Hallo!

Siehe:

(Denke diesmal brauche ich keine Kommentare...)

Code:
import java.util.Random;

/*
 * Created on 17.04.2004
 */

/**
 * @author Thomas Darimont
 */
public class RandomRange {

	private Random rnd;
	private int rangeStart;
	private int rangeEnd;

	public RandomRange(int rS, int rE) {
		rangeStart = rS;
		rangeEnd = rE;
		rnd = new Random();
	}

	public static void main(String[] args) {
		RandomRange rr = new RandomRange(-50, 50);
		for (int i = 0; i < 1000; i++) {
			System.out.println(rr.nextInt());
		}
	}

	private int nextInt() {
		return ((rangeStart - 1) + rnd.nextInt()) % (rangeEnd + 1);
	}
}

Gruß Tom
 
Hi Thomas,
gibt es einen Grund dagegen, das so zu machen?
Code:
int zufallszahl = (int) (Math.random()*100-50);

Ich frage nur, weil es extra eine Klasse für sowas gibt.
 
Zuletzt bearbeitet:
tja und ich danke euch für die Verwirrung :)
Kann ich nun djwawe's Version nehmen?
bzw. welche Nachteile bringt sie mit sich?
 
also gut verwendet hab ich sie
und je nach dem welche Zahl ich statt dem 50ziger stehen hab,
dementsprechenden Wertebereich hab ich.
nur jetzt ist folgendes..
ich hab nun keinen bereich wo - und + zahl gleich ist (-50 bis +50)
sondern zB -20 bis 130
bzw ich möchte mit hilfe meiner Methode einen gewünschten Bereich eingeben
ist dies mit dieser Math.Random klasse möglich?
 
Ganz einfach: Math.random() gibt dir eine (Komma-)Zahl zwischen 0 und 1.
Heißt also: Du multiplizierst diese Zahl mit der Wertebereichsspanne und ziehst so viel davon ab, wie die Zahl ins Minus geht (bzw. zählst zu, wenn Untergrenze im Plus).

Konkret:
Code:
private int neueZahl(int untere, int obere)
{
int spanne = obere - untere;
return (int) (Math.random()*spanne+untere) 
//ja, + ist richtig, da + minuszahl ins minus geht
}
 

Neue Beiträge

Zurück