隨機產生0-1之間實數的方法
#define m 65536L
#define b 1194211693L
#define c 12345L
class RandomNumber
{
private:
unsigned long d; // d 為當前種子
public:
RandomNumber(unsigned long s = 0); //預設值0 表示由系統自動產生種子
unsigned short random(unsigned long n); //產生0: n-1之間的隨機整數
double fRandom(void); // 產生[0,1)之間的隨機實數
};
#include "RandomNumber.h"
RandomNumber::RandomNumber(unsigned long s)
{
if(s == 0) d = time_t(0);
else d = s;
}
unsigned short RandomNumber::random(unsigned long n)
{
d = b*d+c;
return (unsigned short)((d >>16) %n); //把d的高16位對映到0-(n-1)範圍內
}
//用函式fRandom產生[0,1)之間的隨機實數
double RandomNumber::fRandom(void)
{
return random(m)/double(m);
}
//測試的demo
int main()
{
RandomNumber d;
for(int i = 0;i< 1000;i++ )
cout << d.fRandom() << " ";
return 0;
}
相關文章
- JavaScript 獲取0-1之間的隨機數JavaScript隨機
- js隨機產生區間數JS隨機
- C 語言產生隨機數的方法隨機
- C語言產生隨機數的方法C語言隨機
- 集合框架-產生10個1-20之間的隨機數,要求隨機數不能重複框架隨機
- R產生隨機數隨機
- ORACLE產生隨機數的多種方法分享 轉Oracle隨機
- vc中產生隨機數隨機
- 計算機隨機數的產生 (轉)計算機隨機
- 高效產生不重複的隨機數隨機
- 【筆記】如何產生隨機數筆記隨機
- matlab產生隨機數或隨機矩陣Matlab隨機矩陣
- Python產生20個隨機整數的方法詳解!Python隨機
- C語言中產生真隨機數的方法,帶封裝C語言隨機封裝
- js實現的產生隨機數程式碼例項JS隨機
- 產生唯一隨機碼的方法分析隨機
- 如何產生指定範圍的隨機數隨機
- linux生產32位隨機數Linux隨機
- 高效產生一組不重複的隨機數隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 從oracle表中隨機取記錄,產生隨機數和隨機字串Oracle隨機字串
- JavaScript產生隨機數例項程式碼JavaScript隨機
- 產生0到100內的任意隨機數隨機
- GENERATING INTEGER RANDOM NUMBERS(幾種產生隨機數方法的效率分析) (轉)random隨機
- matlab中的產生隨機數的rand函式Matlab隨機函式
- 用C語言的rand()和srand()產生偽隨機數的方法總結C語言隨機
- Matlab產生隨機數函式小結Matlab隨機函式
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- 利用arc4random_uniform()產生隨機數randomORM隨機
- iOS生成最大最小數之間隨機數iOS隨機
- Matlab產生特定範圍的隨機數矩陣Matlab隨機矩陣
- MATLAB中如何產生指定範圍的隨機數Matlab隨機
- 獲取兩個數之間的隨機數-java隨機Java
- oracle要對一個欄位產生隨機數Oracle隨機
- Random 專案總結 -11 產生隨機數字random隨機
- Math類產生隨機數後保留一位小數隨機
- js生成m-n之間的隨機數JS隨機
- 產生一個32位的16進位制隨機數隨機