x = (int)(Math.random() * 1) was sind die Chancen, zu 0 oder 1?
das ist der genaue code, dann habe ich einen Schalter für case 0: und Fall 1: es scheint, dass der Fall 1: es kommt jedes mal, ich möchte eine 50/50 chance) 0 oder 1 herauskommen, ist das der richtige Weg oder sollte ich 1.5 oder wie funktioniert das genau?
talka = (int)(Math.random() * 1);
switch(talka)
{
case 0:
{
talk.setAnimationListener(this);
talk.playtimes(1,24);
startService(new Intent(this, love1.class));
break;
}
case 1:
{
talk.setAnimationListener(this);
talk.playtimes(1,12);
startService(new Intent(this, love2.class));
break;
}
}
- Beachten Sie, dass Math.random() liefert double-Wert zwischen 0.0 und 1.0
- Hälfte/Hälfte, da random() gibt die gleichmäßig verteilten Wert.
- Er wirft den Wert zu
int
- also, wenn ich Math.round(Math.random() * 1) es wäre eher eine 50/50 chance?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem hat zu tun mit der Art, wie die Besetzung funktioniert.
Im Mai testen, war Java im Grunde "trimmen" die dezimale Ergebnis aus und einfach unter die "integer" - Komponente. Allerdings, wenn ich rundete das Ergebnis, ich habe es spiegeln zwischen 0 und 1.
Haben ein Spiel
Es meine einfache test, ich war immer um die 50/50 Marke (+/-)
Wie bereits von Hovercraft, besser
java.util.Random
in diesem Fall.Einfach ein
java.util.Random
- Objekt und rufen Sie einfachnextBoolean()
es auf, wird true zurückgegeben, oder false, in einer 50:50 Verteilung. Einfach wieMath.PI
.Diese immer rundet ab.
was Sie gedacht war vielleicht
Jedoch, mithilfe Math.random() Holen Sie sich ein bit ist sehr ineffizient.
Wenn Sie eine Zufällige entweder
oder noch besser
Die variable
talka
stets null; Math.random gibt einen Wert zurück, wobei 0 <= x < 1; da x muss kleiner sein als 1 und die(int)
cast schneidet die dezimale Komponente, die integer-Ergebnis immer 0 sein.Aus der Mathematik.random Dokumentation:
Verwenden
java.util.Random.nextBoolean()
statt.- Es wäre besser und leichter zu gehen mit
java.util.Random
.- Verwenden Sie die
nextBoolean()
Methode sein.ZB: