Генерация случайного числа с плавающей точкой в ​​заданном диапазоне чисел с использованием Bash - PullRequest
0 голосов
/ 16 мая 2018

Может кто-нибудь помочь мне в генерации случайного числа с плавающей точкой с заданным диапазоном чисел в bash (shell). Я нашел команду ниже, но есть ли другой вариант? (используя команды awk или $ rand.)

jot -p2  0 1

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Для генерации 1 случайного числа с плавающей запятой от 3 до 17:

$ awk -v min=3 -v max=17 'BEGIN{srand(); print min+rand()*(max-min+1)}'
16.4038

Чтобы сгенерировать 5 случайных чисел с плавающей точкой от 3 до 17:

$ awk -v min=3 -v max=17 -v num=5 'BEGIN{srand(); for (i=1;i<=num;i++) print min+rand()*(max-min+1)}'
15.1067
4.79238
3.04884
11.3647
15.1132

Массаж для костюма.

0 голосов
/ 16 мая 2018

Без каких-либо внешних утилит генерировать случайные вещественные числа от 3 до 16.999:

a=3
b=17
echo "$((a+RANDOM%(b-a))).$((RANDOM%999))"
0 голосов
/ 16 мая 2018

Если у вас есть доступные GNU coreutils, вы можете использовать:

seq 0 .01 1 | shuf | head -n1 
...