一个简单的随机数生成算法实现(C++)
2008-04-14 16:22
573 查看
#ifndef EASYRANDOM_INCLUDED
#define EASYRANDOM_INCLUDED
static const int A = 48271;
static const int M = 2147483647;
static const int Q = M/A ;
static const int R = M%A ;
class Random
...{
public :
explicit Random(int initialVal=1);
int RandomInt();
double Random0_1();
int RandomInt(int low,int high);
private :
int state;
};
Random::Random(int initialVal)
...{
if(initialVal < 0)
initialVal += M;
state = initialVal;
if(state==0)
state=1;
}
int Random::RandomInt()
...{
int tmpState = A*( state % Q ) - R * (state / Q);
if(tmpState > 0)
state = tmpState;
else
state = tmpState + M;
return state;
}
//生成0.0到1.0之间的随机小数
double Random::Random0_1()
...{
return (double)RandomInt()/M;
}
//生成low到high之间的随机整数
int Random::RandomInt(int low, int high)
...{
int range = high - low;
return low+RandomInt()%range;
}
#endif
这些数的生成依赖于算法,不能算是真正的随机数,只能算是伪随机数。本例中的算法详情google 线性同余生成器。
ps.
没有关键的C代码插入方式,用C#的顶下先
相关文章推荐
- 一个简单的随机数生成算法实现(C++)
- 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
- 一个UUID生成算法的C语言实现 --- WIN32版本
- PLC编程实现在指定范围内生成一个随机数
- 随机生成不重复的随机数的简单算法
- C语言中随机数的生成,以及简单猜数游戏的实现。
- 实现一个简单的c++ list容器(含sort排序 链表归并算法实现)
- 一个简单的多机器人编队算法实现--PID
- 一个简单的生成随机数的小程序
- Kruskal生成树算法的java代码简单实现
- JS实现随机数生成算法示例代码
- 算法学习与代码实现1——开始、生成随机数
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 漫水填充算法的一个简单实现(Qt版)
- Java 语言实现的随机数生成算法
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 实现简单的输入编辑,录入正确的字符串,出现‘$’,表示撤销前一个输入,发现连续的‘$’,表示连续撤销前面的输入;发现‘%’,表示放弃前面所有录入;生成最终结果。
- 连连看-二维数组实现简单的生成随机数,消除两个数相同
- 一个简单的多机器人编队算法实现--PID
- 一个UUID生成算法的C语言实现——WIN32版本