Wie generieren Sie zufällige Zahl aus einem vorgegebenen Satz von Werten?
int main()
{
srand(time(NULL));
int r=rand();
}
Die obige Funktion erzeugen kann, die eine beliebige Anzahl, aber was ist, wenn ich möchte, zum erzeugen einer Anzahl von einer gegebenen Gruppe von Werten.
Zum Beispiel, wenn ich wollen zum generieren einer Anzahl zufällig, sondern NUR von den Werten 4,6,1,7,8,3
.
Gibt es eine Möglichkeit, dies zu erreichen?
Jede mögliche Hilfe würde geschätzt.
rand()
ist erlaubt gründlich schlecht: stackoverflow.com/questions/24005459/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ziemlich einfach. Erstellen Sie ein array. das hat die Ausgänge, die Sie wünschen (4,6,1,7,8,3). Dann wählen Sie eine zufällige Eimer in das array.
% 6
im Grunde wählt Werte0 - 5
sind die Indizes im array.Einige Informationen, wie Sie manipulieren können
rand()
weiter.rand() % 7 + 1
Erklärung:
rand() gibt eine Zufallszahl zwischen 0 und einer großen Zahl.
% 7, bekommt den Rest nach der Division durch 7, die eine ganze Zahl von 0 bis 6 inklusive.
1 ändert sich der Bereich auf 1 bis 7 einschließlich ist.
r = myArray[rand()%6]
Recht? warum sonst ist Sie definiertmuArray
?Wenn Sie einen vordefinierten Satz von Werten, die Sie auswählen möchten zufällig, dann legen Sie Sie in ein array und verwenden Sie
rand
um den index in das array.Siehe z.B. diese alte SO beantworten für, wie man eine zufällige Zahl in einem Bereich (also zwischen null und der Größe des Arrays für Ihren Fall).
Können Sie die Liste der zufälligen Werte, die Sie möchten, und speichern Sie Sie in einem array. Dann können Sie wählen, eine zufällige Zahl aus dem Bereich der Liste und wählen Sie die Position, an der angegebenen Indexposition.
Können Sie teilen Sie die random-Nummer und nehmen Sie nur die übrig gebliebenen.
die Nutzung ist als index des Arrays von Ihr wollte zahlen
Zum Beispiel , wenn Sie nehmen Sie die (zufällige Anzahl % 3) Sie erhalten 0,1,2
so können Sie mit Reihe von 3 zahlen wollte