Ich möchte beispielsweise 10 Zufallszahlen zwischen 100 und 200 (beide enthalten) generieren. Wie mache ich es mit Rand?
command-line
Ignacio Caviedes
quelle
quelle
rand
? DieRANDOM
Variable?/dev/random
?/dev/urandom
?rand
oder dasrand
?Antworten:
Wenn Sie das
rand
aus demrand
Paket meinen (im Gegensatz zu dem aus OpenSSL), unterstützt es keine Untergrenze, sondern nur eine Obergrenze. Was Sie tun können, ist der Trick, die untere Grenze auf Null zu verschieben und dann die untere Grenze hinzuzufügen:-N
ist die Anzahl der Zufallszahlen, die Sie benötigen-M
wäre die Obergrenze derrand
Zahlenausgänge, also ( max - min = 100)-e -d '\n'
Setzt das Trennzeichen auf eine neue Zeile. Dies dient der bequemen Verarbeitung durchawk
.Der
awk
Code nimmt dann jede Zeile und fügt 100 hinzu.quelle
Verwenden von
python
:Ausgabe :
Hier habe ich das
random
Modul von verwendetpython
, um 10 (range(10)
) zufällige Ganzzahlen zwischen 100 und 200 (enthalten) (random.randint(100, 200)
) zu generieren .quelle
Hier ist ein Perl-Weg:
Sie könnten auch verwenden
/dev/urandom
(angepasst von hier ):quelle
Sie können auch verwenden
awk
:quelle
Mit
shuf
von GNU Coreutils:quelle
Sie können verwenden
$RANDOM
.quelle
Bash-Version
Nichts Spektakuläres - einfache Emulation von for loop mit
i
Zähler undwhile
. Der Bereich wird mithilfe derif . . . else . . .fi
Struktur festgelegt. Randnotiz: Meine Eingabeaufforderung ist zuerst das Arbeitsverzeichnis und dann der Eingabebereich. Lassen Sie sich also nicht verwirren, was Sie sehenbashRadom.sh
::C-Version
Dies ist der Code, den ich während des C-Unterrichts an meiner Universität verwendet habe. Eine kleine Bearbeitung, die ich hinzugefügt habe, um diese Frage zu beantworten, ist die Verwendung von Befehlszeilenargumenten (anstelle von Hardcodierungswerten in der Quelle).
randfunc.c
::quelle
random
Bibliothek verwenden: stackoverflow.com/a/19728404/2072269 , stackoverflow.com/a/19666713/2072269