Ich benutze dies seit einiger Zeit, um entweder zurückzukehren true
oder false
um gefälschte Seed-Daten zu erstellen. Ich frage mich nur, ob jemand eine bessere, prägnantere oder ausführlichere Art hat, entweder true
oder zurückzukehren false
.
rand(2) == 1 ? true : false
rand(2)==1
bereits ein boolescher Wert ist?Antworten:
Ein deklaratives Snippet mit Array # sample :
quelle
[true, false].sample
ist schneller alsrand(2) == 1
. Als ich jede Operation 10 Millionen Mal durchführterand
, betrug die Methode 2,179 Sekunden. Diesample
Methode war 1.645s.Wie wäre es mit dem Entfernen des ternären Operators.
quelle
[true, false].sample
besser, weil es sofort offensichtlich ist, was es tut.rand(2) == 1
würde allerdings mit rubin <1,9 arbeiten, was gut ist.0
und1
, könnten Sie auch verwendenrand(2).zero?
Ich benutze gerne
rand
:rand < 0.5
Bearbeiten : Diese Antwort wurde zum Lesen verwendet
rand > 0.5
,rand < 0.5
ist aber technisch korrekter.rand
Gibt ein Ergebnis im halboffenen Bereich [0,1] zurück. Die Verwendung<
führt also zu gleichen Quoten für halboffene Bereiche [0,0,5) und [0,5,1). Die Verwendung>
würde zu UNGLEICHEN Gewinnchancen im geschlossenen Bereich [0,0,5] und im offenen Bereich (0,5,1) führen.quelle
rand > 0.3
rand < 0.7
für 70%Normalerweise benutze ich so etwas:
Sie können Integer auch erweitern, um eine to_boolean-Methode zu erstellen:
quelle
rand(2).zero?