Shinya Kitaoka 810553
#pragma once
Shinya Kitaoka 810553
Toshihiro Shimizu 890ddd
#ifndef igs_math_random_h
Toshihiro Shimizu 890ddd
#define igs_math_random_h
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
/*
Toshihiro Shimizu 890ddd
履歴
Toshihiro Shimizu 890ddd
2001-04-25 update
Toshihiro Shimizu 890ddd
2001-06-19 rename to 'calculator_random_plus_long.h'
Toshihiro Shimizu 890ddd
2005-02-03 rename to 'ptbl_random.h'
Toshihiro Shimizu 890ddd
2005-02-10 separete to 'ptbl_random.h' and 'ptbl_random.cxx'
Toshihiro Shimizu 890ddd
解説 (2005-02-03.thu wrote)
Toshihiro Shimizu 890ddd
疑似乱数整数列発生関数rand()は処理系定義であるため、
Toshihiro Shimizu 890ddd
たとえば、radhat9とWindowsとでは疑似乱数列が違う。
Toshihiro Shimizu 890ddd
また、random()関数は、radhat9にはあるが、MS-Cにはない。
Toshihiro Shimizu 890ddd
よって、ポータビリティを持たせるため独立した関数定義をする
Toshihiro Shimizu 890ddd
参考:「ANSI C/C++辞典」 平林雅英 共立出版株式会社
Toshihiro Shimizu 890ddd
*/
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
namespace igs {
Shinya Kitaoka 120a6e
namespace math {
Shinya Kitaoka 120a6e
class random {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  random();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /* 乱数種 seed(0〜std::numeric_limits<long>::max()) */</long>
Shinya Kitaoka 120a6e
  void seed(unsigned long seed);
Shinya Kitaoka 120a6e
  unsigned long seed(void) const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /* 乱数生成 0〜std::numeric_limits<long>::max() */</long>
Shinya Kitaoka 120a6e
  long next(void);
Shinya Kitaoka 120a6e
  double next_d(void); /* 0 ... 1 */
Toshihiro Shimizu 890ddd
private:
Shinya Kitaoka 120a6e
  unsigned long seed_;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif /* !igs_math_random_h */