異なる数字からなる3桁の数を作成します。配列を使って重複した数を選ばないようにすることもできますが、ここでは安直に異なる数になるまで繰り返し乱数を発生させます。手順としては
- 一桁目の1〜9の乱数を発生させる。
- 一桁目と異なる数になるまで繰り返し1〜9の乱数を発生させる。
- 一桁目、二桁目と異なる数になるまで繰り返し1〜9の乱数を発生させる。
となります。
【サブルーチン】
# 答え作成サブルーチン sub make_answer { my $n0, $n1, $n2; # 各桁の変数を用意 $n0=int(rand(9))+1; # 1〜9の乱数を作成 do { $n1=int(rand(9))+1; # 1〜9の乱数を作成 } until ($n1!=$n0); # $n0と$n1が異なるまで繰り返し do { $n2=int(rand(9))+1; # 1〜9の乱数を作成 } until ($n2!=$n1 && $n2!=$n0); # $n0と$n1と$n2が異なるまで繰り返し return $n0*100+$n1*10+$n2; }【呼び出し側】
print &make_answer;