Chcę wygenerować, powiedzmy 10 liczb losowych od 100 do 200 (oba uwzględnione). Jak mogę to zrobić za pomocą Rand?
command-line
ignacio caviedes
źródło
źródło
rand
?RANDOM
Zmienna?/dev/random
?/dev/urandom
?rand
czy torand
?Odpowiedzi:
Jeśli masz na myśli
rand
z tymrand
pakietem (w przeciwieństwie do jednego z OpenSSL), nie obsługuje dolną granicę, tylko górną granicę. To, co możesz zrobić, to sztuczka polegająca na przesunięciu dolnej granicy do zera, a następnie dodaniu dolnej granicy:-N
jest liczbą potrzebnych liczb losowych-M
będzie górną granicą liczbrand
wyjściowych, więc ( max - min = 100)-e -d '\n'
ustawia separator na nowy wiersz. To dla wygody przetwarzania przezawk
.Następnie
awk
kod pobiera każdą linię i dodaje do niej 100.źródło
Używanie
python
:Wynik :
Tutaj wykorzystałem
random
modułpython
generowania 10 (range(10)
) losowych liczb całkowitych od 100 do 200 (w zestawie) (random.randint(100, 200)
).źródło
Oto sposób na Perla:
Możesz także użyć
/dev/urandom
(dostosowanego tutaj ):źródło
Możesz także użyć
awk
:źródło
Z
shuf
z GNU coreutils:źródło
Możesz użyć
$RANDOM
.źródło
Wersja Bash
Nic spektakularnego - prosta emulacja pętli for z
i
licznikiem iwhile
. Zakres ustawia się za pomocąif . . . else . . .fi
struktury. Uwaga dodatkowa: mój monit to najpierw katalog roboczy, a następnie obszar wprowadzania, więc nie myl się z tym, co widziszbashRadom.sh
:Wersja C.
To jest kod, którego używałem podczas nauki klasy C na moim uniwersytecie. Niewielka edycja, którą dodałem w celu dopasowania do tego pytania, polega na użyciu argumentów wiersza poleceń (zamiast na stałe wpisywać wartości do źródła)
randfunc.c
:źródło
random
biblioteką: stackoverflow.com/a/19728404/2072269 , stackoverflow.com/a/19666713/2072269