Generiert Zufällige Zahl zwischen 0 und 10
Wie kann ich Zufallszahlen zwischen 0 und 10? Kann ich eine Probe für diese Zufallszahl-generation?
Zufälligkeit ist schwierig zu tun richtig, sollten Sie zuerst identifizieren, was Sie brauchen, von Zufallszahlen. rand kann in Ordnung sein für ein rpg Würfel werfen, aber völlig ungeeignet für ein Spiel, mit Geld, alles was mit Kryptographie oder der Modellierung Rauschen DSP-Simulationen
Die meisten der Zeit, die Sie tun gut mit Mersenne Twister.
Eine andere Frage, wo user692270 akzeptiert @karthik Frage.
Die akzeptierte Antwort gepostet wurde 2 Minuten nachdem die Frage gepostet wurde. Die Antwort ist als solche gekennzeichnet sind von karthik, wer die Frage gestellt hat ... war es zuvor identifizierten geschrieben von user692270, vermutlich ein sockpuppet?
Ich denke, Sie haben zusammengeführt wurden. Entweder das, oder ein Verbot. Aber meine Wette ist, auf der Fusion.
Die meisten der Zeit, die Sie tun gut mit Mersenne Twister.
Eine andere Frage, wo user692270 akzeptiert @karthik Frage.
Die akzeptierte Antwort gepostet wurde 2 Minuten nachdem die Frage gepostet wurde. Die Antwort ist als solche gekennzeichnet sind von karthik, wer die Frage gestellt hat ... war es zuvor identifizierten geschrieben von user692270, vermutlich ein sockpuppet?
Ich denke, Sie haben zusammengeführt wurden. Entweder das, oder ein Verbot. Aber meine Wette ist, auf der Fusion.
InformationsquelleAutor karthik | 2011-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
1) sollten Sie nicht verwenden
rand()
, hat es schlechte Verteilung, kurze Zeit usw...2) sollten Sie nicht verwenden
%x
wennMaxValue % x != 0
weil Sie sich Durcheinander Ihre gleichmäßige Verteilung (angenommen, Sie verwenden nicht rand()), z.B.32767 % 10 = 7
also die Nummer 0-7 eherSehen Sie dieses für mehr info: Going native 2013 - Stephan T. Lavavej - rand() considered harmful
Sollten Sie etwas verwenden wie:
Ich in meine codes so etwas wie dieses:
HINWEIS: die Implementierung ist nicht thread-sicher und baut einen Vertrieb für jeden Anruf. Das ist ineffizient. Aber Sie können es ändern, für Ihre Bedürfnisse.
InformationsquelleAutor relaxxx
iSecret variable wird die zufällige zahlen zwischen 1 und 10
InformationsquelleAutor karthik
Finden Sie in diesem Beispiel eine einheitliche integer-Verteilung in
boost::random
:http://www.boost.org/doc/libs/1_46_1/doc/html/boost_random/tutorial.html#boost_random.tutorial.generating_integers_in_a_range
InformationsquelleAutor juanchopanza
random_integer = rand()%10;
sollten den trick tun, denke ich.random_integer = rand()%11;
für alle zahlen zwischen 0 und 10, 10...yup... Bit-ich denke, er/Sie bekommt das Bild 🙂
(Nicht wie es praktisch wichtig ist in diesem Fall, aber beachten Sie, dass dieses ein etwas voreingenommen Vertrieb von design. Modulo ist ein "wrap-around" - Betrieb, also für jede Reihe von zahlen, die kein Vielfaches des modulus, wird die Ausgabe verzerrt werden. Zum Glück, hier der bias ist nicht toll, weil rand (), die üblicherweise gibt eine 32-bit-Nummer, und 10 ist ein vergleichsweise kleiner E-Modul, die zahlen 0 bis 5 sind nur 1.000000023 mal häufiger ist als die anderen. Das ist auch innerhalb von "random noise" und kann wohl ignoriert werden. Wenn so ein Ding kann von Bedeutung sein, wenn der E-Modul ist wesentlich größer.)
auf windows RAND_MAX ist nur 32767 (15 bit) so wird es etwa 1/3000 Voreingenommenheit gegenüber immer eine 9 oder 10
InformationsquelleAutor Fortega