Perl Language
хаотичность
Поиск…
замечания
Документация для функции rand () perl: http://perldoc.perl.org/functions/rand.html
Создайте случайное число от 0 до 100
Передайте верхний предел в качестве аргумента функции rand ().
Входные данные:
my $upper_limit = 100;
my $random = rand($upper_limit);
print $random . "\n";
Выход:
Случайное число с плавающей запятой, например ...
45.8733038119139
Генерировать случайное целое число от 0 до 9
Передайте произвольное число с плавающей запятой как int.
Входные данные:
my $range = 10;
# create random integer as low as 0 and as high as 9
my $random = int(rand($range)); # max value is up to but not equal to $range
print $random . "\n";
Выход:
Случайное целое число, например ...
0
См. Также perldoc для rand .
Доступ к элементу массива случайным образом
my @letters = ( 'a' .. 'z' ); # English ascii-bet
print $letters[ rand @letters ] for 1 .. 5; # prints 5 letters at random
Как это устроено
-
rand EXPR
ожидает скалярное значение, поэтому@letters
вычисляется в скалярном контексте - Массив в скалярном контексте возвращает количество содержащихся в нем элементов (26 в этом случае)
-
rand 26
возвращает случайное дробное число в интервале0 ≤ VALUE < 26
. (Это никогда не может быть26
) - Индексы массива всегда целые числа, поэтому
$letters[rand @letters]
≡$letters[int rand @letters]
- Массивы Perl индексируются с нулевым значением, поэтому
$array[rand @array]
возвращает$array[0]
,$array[$#array]
или элемент между
(Тот же принцип применяется к хэшам)
my %colors = ( red => 0xFF0000,
green => 0x00FF00,
blue => 0x0000FF,
);
print ( values %colors )[rand keys %colors];
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow