乱数生成

C++で乱数を生成するクラスを作成した

#include <stdio.h>
#include <iostream>
#include <ctime>//for time()                                                                                                 
#include <cstdlib>//for srand(),rand()                                                                                       

class rndm{
private:
  bool flag_init;
public:
  double Get(int min,int max);
  void Init();
  rndm();
};

rndm::rndm(){
  flag_init = false;
}

double rndm::Get(int min,int max){
  if(!flag_init){
    srand(time(NULL)); // 一度だけ現在時刻を乱数の種に設定する                                                                        
    flag_init = true;
  }
  int lucky = 1000*min+rand()%(1000*max-1000*min); // min以上max未満の乱数を生成                                             
  return (double)lucky/1000;
};

出来ればクラス名をrandomにしたかったが、そうすると

spread2d.cpp:79: 警告: statement is a reference, not call, to function ‘random’
spread2d.cpp:79: 警告: statement has no effect

と怒られる。名前を変えるとエラーが無くなるので、多分randomという名前がすでに定義されているのだろう。
ともかく、最初にrndmを定義した時は現在時刻で初期化するが、そのあとは得られた乱数自体を初期値にした。
こうする事で少しはまともな乱数が出来たとおもわれる