『毎回きちんと変わる乱数生成コマンド』

Maple の乱数発生では restart の度に同じ乱数値が発生しますが、randomize を使用することで違う値の乱数を発生させることが可能になります。ここでは、randomize をプロシージャに取り込み毎回違う乱数値を発生するコマンドを作成します。

>    restart;

乱数発生コマンド

引数には、( 作成したい乱数の個数 , データの範囲の最小値 ,  データの範囲の最大値  ) と指定します。

引数に 『作成したい乱数の個数』 のみを指定した場合はデータの範囲は 0 から 100 までとなります。

>    Rand := proc()
  local num, x, y, z;
  x := args[1]:
  if nargs = 3 then
    y := args[2]:
    z := args[3]:
  else
    y := 0:
    z := 100:
  end if:
  randomize():
  num := rand(y..z);
  seq(num(),j=1..x);
end proc:

>    Rand(3,0,10);

2, 3, 8

>    Rand(5);

36, 94, 17, 40, 45

乱数値行列生成コマンド

引数には、( x 行 x 列の正方行列 , データの範囲の最小値 ,  データの範囲の最大値  ) と指定します。

引数に 『x 行 x 列の正方行列』 のみを指定した場合はデータの範囲は 0 から 100 までとなります。

>    RandMat := proc()
  local num, x, y, z;
  x := args[1]:
  if nargs = 3 then
    y := args[2]:
    z := args[3]:
  else
    y := 0:
    z := 100:
  end if:
  randomize():
  num := rand(y..z);
  convert([seq([seq(num(),j=1..x)],k=1..x)],Matrix);
end proc:

>    RandMat(4,0,100);

Matrix(%id = 12644540)

>    RandMat(3);

Matrix(%id = 12788004)

>   

閉じる