ゼミのお話/一覧/プログラミング演習初級・バンディット/共通/乱数の使い方

2018-04-16 (月) 15:53:00 (1585d)
  • 乱数の使い方
    • banditの中で簡単に使う方法.ちゃんとした使い方は各自調べた方がよい
  • 0.3の確率で何か(ランダム)をして、0.7の確率で何か(ちゃんと)をする、のような使い方
 double r = (double) rand() / (double)RAND_MAX;
 
 if( r <= 0.3){
   なにか(ランダム)
 }else{
   なにか(ちゃんと)
 }
  • rand()は0からRAND_MAX(と定義されている整数)の間のランダムな数を出力する。なので、
    • rand() / RAND_MAX
  • で、0から1の間のランダムな数となる。よって、これが(上記の例だと)0.3より小さい数である、と考えるのは0.3の確率で生じる、というのと同じことである。
  • 0から4の間の選択しをランダムに選ぶ
 int r = rand() % 5;
 
 switch(r){
 case 0:
   break;
 case 1:
 ...
 }
  • rand() % 5 とやると5で割ったあまりの数(0から4)が得られる。ここで、rand()はランダムな整数なので、ランダムな0から4までの値を得ることができる。