隨機產生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隨機
- R產生隨機數隨機
- Python產生20個隨機整數的方法詳解!Python隨機
- c++產生隨機數C++隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 【筆記】如何產生隨機數筆記隨機
- 如何產生指定範圍的隨機數隨機
- 關於如何產生隨機數的幾種方法彙總!(2018.07.08)隨機
- matlab中的產生隨機數的rand函式Matlab隨機函式
- Matlab產生隨機數函式小結Matlab隨機函式
- Rust中如何產生隨機數或密碼?Rust隨機密碼
- Java之獲取隨機數的4種方法Java隨機
- Random 專案總結 -11 產生隨機數字random隨機
- Math類產生隨機數後保留一位小數隨機
- 用Java實現在【520,1314】之間生成隨機整數的故事Java隨機
- 生成指定區間的隨機小數隨機
- 獲取當前時間戳和隨機數的獲取、Java Random、ThreadLocalRandom、UUID類中的方法應用(隨機數)時間戳隨機JavarandomthreadUI
- 短視訊軟體開發,驗證碼的隨機數如何產生隨機
- Golang生成區間隨機整數Golang隨機
- numpy各種生成隨機數的方法隨機
- 幾種生成隨機數方法隨機
- 偽隨機數是什麼?偽隨機數生成方法有哪些?隨機
- ERP與精益生產之間的關係
- 介面測試-使用 mock 生產隨機資料Mock隨機
- 介面測試-使用mock生產隨機資料Mock隨機
- java獲取時間戳和隨機數Java時間戳隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- 明明的隨機數隨機
- 約瑟夫問題,輸入總人數,自動產生大於0小於n的隨機數隨機
- LevelDB 原始碼解析之 Random 隨機數原始碼random隨機
- Java實現隨機抽獎的方法有哪些Java隨機
- 隨機數隨機
- 基於 Flink 的實時數倉生產實踐
- python生成隨機數、隨機字串Python隨機字串
- python–模組之random隨機數模組Pythonrandom隨機
- Python如何隨機生成1到100的隨機數?Python隨機
- JavaScript隨機數實現防止快取JavaScript隨機快取
- Phaser3 物件池隨機產生炸彈並銷燬物件隨機
- ENVI深度學習隨機引數訓練方法深度學習隨機