Zufallszahlen zwischen zwei Werten erstellen

Hmm dann wurde de Bad-Word-Filter in der Zwischenzeit aktualisiert. In irgend einem Code-Snippet das ich noch mit Gast-Konto damals gepostet hab hat mir genau das den Package-Namen kaputt gemacht ...

BTW : das mit Prog für Programm haste schon recht ... aber die tätigkeit Programmieren habe ich auf Grund meiner starken Slang-Sprache mit doppeltem G geschrieben : proggen = Programieren
 
Ok genug OT ^^

@starbug
Probier solche Sachen aus, wenn was nicht funktioniert und du verstehst nicht warum, frage hier bzw schau in die Dokumentation :)
 
Ich finde die Lösung von Crack echt super ... manche Leute sind halt einfach nur genial.
 
Ja, wenn ich jetzt z.B. einen Würfel programmieren möchte, dann darf dieser doch nur Werte zwischen 1 und 6 ausgeben. Wie müsste das dann aussehen?
 
Code:
a = 3;
b = 7;
c = rand(); # Zufallszahl

d = b - a; # Differenz
e = c * d; # Multiplizieren mit Zufallszahl
f = e % d; # Modulo
g = f + 1 + d; # Differenz addieren, g ist deine Zufallszahl

Hm, scheint mir nicht logisch und wenn ich das mit 0,99 durchrechne kommt eine Zufallszahl ausserhalb des Bereiches raus.

Folgendes scheint mir da sinnvoller zu sein:
Code:
a = 3;
b = 7;
c = rand(); # Zufallszahl

d = b - a; # Differenz
e = c * d; # Multiplizieren mit Zufallszahl, ergibt eine Zahl zwischen 0 und Differenz
g = e + a; #  Addieren zu kleinerer Zahl, g ist Zufallszahl zwischen a und b
 
Ok. Und wenn ich jetzt z.B. möchte, dass statt Zahlen Buchstaben ausgegeben werden sollen, wie mach ich das dann?
Man könnte nämlich alle Buchstaben einen Wert zuweisen und dann nach dem obrigen Prinzip das Programm schreiben, dies erscheint mir aber etwas... unelegant :)
Gibt es da andere Wege?
 
Weil hier ein ziemliches Durcheinander herrscht, hier mal eine kleine Zusammenfassung:

Variante A

Eine Methode für Zufallszahlen gibt einen Wert 0<x<1 aus

Beispiele hierfür:
Java:
r = Math.random();
r = new Random().nextDouble();

Zufallszahl z zwischen Obergrenze max und Untergrenze min:
Java:
z = r * (max - min) + min;

Variante B

Eine Methode für Zufallszahlen gibt einen ganzzahligen Wert aus (z.B. 0<x<2.147.483.647)
Achtung, einige Methoden lassen auch negative Werte zu. Der Betrag einer Zahl kann mit Math.abs(n) berechnet werden.

Beispiele hierfür:
Java:
r = new Random().nextInt();

Zufallszahl z zwischen Obergrenze max (inkl.) und Untergrenze min (inkl.) (nur ganze Zahlen):
Java:
z = r % (max - min + 1) + min;

Variante C

Eine Methode für Zufallszahlen gibt einen ganzzahligen Wert zwischen 0 (inkl.) und n (exkl.) aus

Beispiele hierfür:
Java:
r = new Random().nextInt(n);

Zufallszahl z zwischen Obergrenze max (inkl.) und Untergrenze min (inkl.) (nur ganze Zahlen):
Java:
z = rand(max - min + 1) + min;

PS.: Ich hoffe ich habe hier auch nichts falsches gesagt :)
 
Zuletzt bearbeitet:
Ja, das ist mal eine nette Zusammenfassung, da hat man auch eine Übersicht :)
Und @sheel,
stimmt, habe gerade gar nicht an den Unicode gedacht, da hast du vollkommen recht.
 
Zurück