
Zitat von
einfach nur crack
Code (Pseudo):
1
2
3
4
5
6
7
8
| 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 (Pseudo):
1
2
3
4
5
6
7
| 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 |
Denken gefärdet die Gewohnheit
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?
Die Techniker lachen die Informatiker aus, dass wir nur Computerratten sind, hier meine Antwort:
WIR werden die Maschinen programmieren, die EUCH die Arbeitsplätze wegnehmen :-)
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:
Code java:
1
2
| r = Math.random();
r = new Random().nextDouble(); |
Zufallszahl z zwischen Obergrenze max und Untergrenze min:
Code java:
1
| 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:
Zufallszahl z zwischen Obergrenze max (inkl.) und Untergrenze min (inkl.) (nur ganze Zahlen):
Code java:
1
| 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:
Code java:
1
| r = new Random().nextInt(n); |
Zufallszahl z zwischen Obergrenze max (inkl.) und Untergrenze min (inkl.) (nur ganze Zahlen):
Code java:
1
| z = rand(max - min + 1) + min; |
PS.: Ich hoffe ich habe hier auch nichts falsches gesagt
Geändert von HonniCilest (30.06.11 um 17:05 Uhr)
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
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.
Die Techniker lachen die Informatiker aus, dass wir nur Computerratten sind, hier meine Antwort:
WIR werden die Maschinen programmieren, die EUCH die Arbeitsplätze wegnehmen :-)