Nieten auswaehlen

Tachchen Zusammen,

hab ein kleinen Hänger bei der Erstellung meines Konzepts. Ich habe noch nicht angefangen zu coden sondern spiele verschieden Sachen lieber erstmal auf dem Blatt durch.

Jetzt hänge ich an einer passenden Idee für meine Nieten. Ich ziehe in einem Teil des Programms sowas ähnliches wie ein Los, wobei jetzt jedes siebte eine Niete sein soll.

mit
Java:
 Math.random()
generiere ich mir ja meine Zufallszahlen zwischen 0 und 1.
mit
Java:
(1+ 8* Math.random())
hätte ich einen Bereich zwischen 1 und 7.

Wie jedoch komme ich bei n Ziehungen auf jede 7. ?

Danke für ein Tipp
Grüße
 
ok aber
Java:
(7 * Math.random() + 1)
gibt mir beispielsweise
Java:
2.04828562877036
aus!
die Zahl % 7 ist nie == 0 auch die weiteren nicht oder?!
 

faetzminator

Gesperrter Benutzer
Modulo gibt's nur bei ganzen Zahlen. Es wird also in deinem Beispiel auf 2 gecastet. Du kannst natürlich auch "manuell" nach int casten, wenn dir das besser gefällt.
 
J

javsnippet

Gast
Java:
(int) (Math.random() * 7d) /* das ist 0-6 */ == 0
 
J

javsnippet

Gast
Das wirft jetzt ein paar Fragen auf

1) Modulo mit Fließkomma- und Ganzzahl konvertiert implizit erst die Ganzzahl?
2) Modulo mit zwei double ist zeitintensiver als Modulo mit int?
3) Addition von 1d zu double-Wert ist zeitintensiver als Konvertierung von double nach int?

Java:
(7 * Math.random() + 1) % 7 == 0

vs

Java:
(int) (Math.random() * 7d) == 0

Wenn man davon ausgeht, das der Compiler oben bereits die int-Literale in double-Lit. ändert (und alle Kosten sind gleich), dann zähl ich oben 5 und unten 4 Operationen kosten, demnach wäre unten schneller? mir ist nichts kürzeres bekannt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Bestimmungspfad im Dialog auswaehlen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben