サーチ…


備考

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