一个简单的随机数生成算法实现(C++)

《一个简单的随机数生成算法实现(C++)》
#ifndef EASYRANDOM_INCLUDED
《一个简单的随机数生成算法实现(C++)》

#define
    EASYRANDOM_INCLUDED

《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》

static
 
const
 
int
 A 
=
 
48271
;
《一个简单的随机数生成算法实现(C++)》

static
 
const
 
int
 M 
=
 
2147483647
;
《一个简单的随机数生成算法实现(C++)》

static
 
const
 
int
 Q 
=
 M
/
A ;
《一个简单的随机数生成算法实现(C++)》

static
 
const
 
int
 R 
=
 M
%
A ;
《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》

class
 Random
《一个简单的随机数生成算法实现(C++)》《一个简单的随机数生成算法实现(C++)》


{
《一个简单的随机数生成算法实现(C++)》
public :
《一个简单的随机数生成算法实现(C++)》    
explicit Random(int initialVal=1);
《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》    
int RandomInt();
《一个简单的随机数生成算法实现(C++)》    
double Random0_1();
《一个简单的随机数生成算法实现(C++)》    
int RandomInt(int low,int high);
《一个简单的随机数生成算法实现(C++)》
private :
《一个简单的随机数生成算法实现(C++)》    
int state;
《一个简单的随机数生成算法实现(C++)》}

;
《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》Random::Random(

int
 initialVal)
《一个简单的随机数生成算法实现(C++)》《一个简单的随机数生成算法实现(C++)》


{
《一个简单的随机数生成算法实现(C++)》    
if(initialVal < 0)
《一个简单的随机数生成算法实现(C++)》        initialVal 
+= M;
《一个简单的随机数生成算法实现(C++)》    
《一个简单的随机数生成算法实现(C++)》    state 
= initialVal;
《一个简单的随机数生成算法实现(C++)》    
if(state==0)
《一个简单的随机数生成算法实现(C++)》        state
=1;
《一个简单的随机数生成算法实现(C++)》}


《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》

int
 Random::RandomInt()
《一个简单的随机数生成算法实现(C++)》《一个简单的随机数生成算法实现(C++)》


{
《一个简单的随机数生成算法实现(C++)》    
int tmpState = A*( state % Q )  R * (state / Q);
《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》    
if(tmpState > 0)
《一个简单的随机数生成算法实现(C++)》        state 
= tmpState;
《一个简单的随机数生成算法实现(C++)》    
else
《一个简单的随机数生成算法实现(C++)》        state 
= tmpState + M;
《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》    
return state;
《一个简单的随机数生成算法实现(C++)》}


《一个简单的随机数生成算法实现(C++)》//生成0.0到1.0之间的随机小数
《一个简单的随机数生成算法实现(C++)》

double
 Random::Random0_1()
《一个简单的随机数生成算法实现(C++)》《一个简单的随机数生成算法实现(C++)》


{
《一个简单的随机数生成算法实现(C++)》    
return (double)RandomInt()/M;
《一个简单的随机数生成算法实现(C++)》}


《一个简单的随机数生成算法实现(C++)》//生成low到high之间的随机整数
《一个简单的随机数生成算法实现(C++)》

int
 Random::RandomInt(
int
 low, 
int
 high)
《一个简单的随机数生成算法实现(C++)》《一个简单的随机数生成算法实现(C++)》


{
《一个简单的随机数生成算法实现(C++)》    
int range = high  low;
《一个简单的随机数生成算法实现(C++)》    
《一个简单的随机数生成算法实现(C++)》    
return low+RandomInt()%range;
《一个简单的随机数生成算法实现(C++)》}


《一个简单的随机数生成算法实现(C++)》
《一个简单的随机数生成算法实现(C++)》

#endif

《一个简单的随机数生成算法实现(C++)》

这些数的生成依赖于算法,不能算是真正的随机数,只能算是伪随机数。本例中的算法详情google 线性同余生成器。

ps.

没有关键的C代码插入方式,用C#的顶下先 

    原文作者:随机数生成算法
    原文地址: https://www.cnblogs.com/zelos/archive/2008/04/14/3402884.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞