rand関数:乱数を生成する

Perl で用意されている組み込み関数の一つである rand 関数の使い方です。 rand 関数は乱数を生成して返します。

(Last modified: )

rand関数の書式と基本的な使い方

rand 関数は次のように定義されています。

rand
rand([EXPR])
乱数を生成して返します。

パラメータ:
  EXPR  生成される乱数の最大値(※最大値は含みません)
戻り値:
  乱数

省略可能な 1 番目の引数に生成される乱数の最大値を指定します。省略された場合は 1 が指定されたものとなります。

例えば 1 番目の引数に 10 が指定された場合は、 0 以上 10 未満の乱数が生成され返されます。生成される乱数は小数点を含む値です。

具体的には次のように記述します。

my $num = rand(10);

乱数は小数点を含む数値となりますので、整数値だけの乱数を作成するには int 関数を使って次のように記述します。

my $num = int(rand(10));

int 関数の使い方については「int関数:数値の小数点以下を切り捨て整数部分を取得する」を参照されてください。

なお、古いバージョンの Perl では乱数のシードを作成するための srand 関数の呼び出しを行っていましたが、現在のバージョンでは必要ありません。 rand 関数を実行する際に自動的に srand 関数が呼び出され適切なシードが設定されます。

サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $num;

$num = rand(10);
print "$num\n";
$num = rand(10);
print "$num\n";
$num = rand(10);
print "$num\n";

$num = int(rand(10));
print "$num\n";
$num = int(rand(10));
print "$num\n";
$num = int(rand(10));
print "$num\n";

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

rand関数:乱数を生成する(1)

0 以上 10 未満の乱数を 3 つ生成し、同じように乱数を生成したあと小数点以下を切り捨てたものを取得しました。

-- --

Perl で用意されている組み込み関数の一つである rand 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。