Was ist der einfachste Weg, zufällige ganze Zahlen innerhalb eines Bereichs in Swift zu generieren?
Die Methode habe ich entwickelt, so weit ist diese:
func randRange (lower : Int , upper : Int) -> Int {
let difference = upper - lower
return Int(Float(rand())/Float(RAND_MAX) * Float(difference + 1)) + lower
}
Dieser generiert zufällige Ganzzahlen, die zwischen dem unteren und dem oberen inclusive.
InformationsquelleAutor der Frage RonH | 2014-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine etwas leichtere version davon:
Diese vereinfacht sich noch weiter, wenn Sie sich entscheiden, diese Funktion arbeitet mit unsigned-Werten nur:
Oder, Anton (+1) hervorragende Idee, einen Bereich als parameter:
InformationsquelleAutor der Antwort Jean Le Moignan
Bearbeitet zu entfernen modulo-bias pro den Vorschlag in die Kommentare. (danke!)
Ich denke, eine gute Art, dies zu tun, werden kann, um die Nutzung der Swift-Reihe zu definieren, die Grenzen, weil Sie dann angeben können 1..100 1...100 (inklusive oder exklusive der oberen Grenze). Die beste, die ich kommen mit so weit ist:
Ich habe versucht, über eine Erweiterung auf dem Bereich, aber Sie können nicht scheinen, zu erweitern Reichweite< T, wo T: Int > genauer. Es wäre noch besser, wenn man eine syntax wie in (1..100).rand().
InformationsquelleAutor der Antwort Anton Tcholakov
Wenn Sie in Erweiterungen:
InformationsquelleAutor der Antwort lucamegh