excel 範囲指定をした乱数生成
2012/05/27
整数で、a以上b未満の範囲内の乱数
=INT(RAND()*(b-a)+a)
=INT(RAND()*(b-a)+a)
まとめ:
「Excelの乱数:rand()」
「Excelの乱数:rand()」
めも
b未満じゃなくて、b以下(a以上b以下)とする場合
=INT(RAND()*(b-a+1)+a)
=INT(RAND()*(b-a+1)+a)
となる。
具体的に数字を入れてみる。
1以上3以下の範囲内で乱数生成
→a=1、b=3
↓↓↓
=INT(RAND()*(3-1+1)+1)
→a=1、b=3
↓↓↓
=INT(RAND()*(3-1+1)+1)
この式を少しずつ修正。
=INT(RAND()*(3-1+1)+1)
↓↓↓
=INT(RAND()*(3+(-1+1))+1)
↓↓↓
=INT(RAND()*(3+(0))+1)
↓↓↓
=INT(RAND()*(3+0)+1)
↓↓↓
=INT(RAND()*(3)+1)
↓↓↓
=INT(RAND()*3+1)
↓↓↓
=INT(RAND()*(3+(-1+1))+1)
↓↓↓
=INT(RAND()*(3+(0))+1)
↓↓↓
=INT(RAND()*(3+0)+1)
↓↓↓
=INT(RAND()*(3)+1)
↓↓↓
=INT(RAND()*3+1)
これを見ると「1から3個」という風にも見えるので違う数字に変更して式を修正。
「a=2、b=8」の場合
=INT(RAND()*(8-2+1)+2)
↓↓↓
=INT(RAND()*(8+(-2+1))+2)
↓↓↓
=INT(RAND()*(8+(-1))+2)
↓↓↓
=INT(RAND()*(7)+2)
↓↓↓
=INT(RAND()*7+2)
これだったら「2から7個」という風になる。
つまり「2、3、4、5、6、7、8」となり「2以上8以下」となる。
※JSの乱数生成と同じような考え方ができる。
aからn個の間で乱数生成
=INT(RAND()*n+a)
=INT(RAND()*n+a)