Perl Language
ランダム性
サーチ…
備考
perlのrand()関数のドキュメント: 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
rldのperldocも参照してください。
ランダムに配列要素にアクセスする
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