Java mit Mathrandom befehl RandomZahl zwischen 0 und 10?
Wie ist der command mit "Math.random", der eine der zahlen 1 2 3 4 5 6 7 8 9 macht.
double b= Math.random(); b = b*10+1; int c = (int) b;
Wie geht der Command, der nur Zahlen von 1 bis 9 (einschließlich 1 und 9, aber ohne 0 und 10, etc) generiert
Bitte schnell antworten, ist wichtig!
4 Antworten
Das schöne an deiner Syntax ist doch, dass du nur die 10 durch 9 ersetzen musst. Die 10 steht sozusagen für die Obergrenze, die 1 für die Untergrenze.
Math.random() ist für dein Vorhaben eine GAAAANZ schlechte Idee!
Guck dir lieber die Random-Klasse an, wie in der Antwort von janwelter beschrieben! So macht man das ordentlich! :)
Wenn du allerdings nur einen Durchlauf hast, ist so eine Quick-and-Dirty Lösung auch OK ... würde ich meinen Angestellten aber ehrlich gesagt nicht verzeihen. Naja, jeder reagiert dabei wohl anders. :)
PS: Falls du nicht verstehst, warum Math.floor(Math.random() * x) ein Nogo ist, lasse mal beide Varianten mit einem Profiler laufen! :)
PPS: Wenn es dir auf Geschwindigkeit ankommt, lohnt sich vielleicht ein Xor-Shift-PRNG. Die Dinger sind wahnsinnig schlank, binnen 5 Minuten implementiert und liefern teilweise statistisch bessere Ergebnisse als ein Mersenne-Twister! Aber ich glaube, das hat jetzt nichts mehr mit deiner Frage zu tun ... :)
Ich beneide dich... Jetzt ohne nach konkreten Zahlen zu fragen, verdienst du viel?
Wie ich dich beneide, deine Situation ist mein Traum... aber ich hab erst mit 16 angefangen zu programmieren und kann deshalb nie was reißen :(
Es ist noch kein Meister vom Himmel gefallen! Gib dir einfach immer schön Mühe und lerne ordentlich. Dann wirst du ganz automatisch besser. Und hab mehr Selbstvertrauen!!! :)
Um Zahlen aus dem Intervall [1; 9] zu generieren reicht folgender Befehl:
Math.floor(Math.random()*9)+1)
Du generierst eine "Zufallszahl" zwischen 0 und 1, multiplizierst diese mit 9 (es entstehen Zahlen zwischen 0 und 8), und addierst 1.
Ich hoffe, ich konnte dir helfen; wenn du noch Fragen hast, kommentiere einfach.
LG Willibergi
Sinniger ist es die Ramdom Klasse zu benutzen
Random r = new Random();
Int a = r.nextInt(10);
Jeder hat man klein angefangen :)