一种随机数生成算法
来源:互联网 发布:ws15知乎 编辑:程序博客网 时间:2024/06/06 06:58
随机数生成类
class RandNumber{static const unsigned long maxshort=65536L;static const unsigned long multiplier=1194211693L;static const unsigned long adder=12345L;unsigned long randSeed;public:RandNumber(unsigned long s=0);unsigned short random(unsigned long n);double frandom();unsigned short random(unsigned long x,unsigned long y);};RandNumber::RandNumber(unsigned long s/* =0 */){if(s==0){randSeed=(unsigned long)time(NULL);}else{randSeed=s;}}unsigned short RandNumber::random(unsigned long n){randSeed=multiplier*randSeed+adder;return (unsigned short)((randSeed>>16)%n);}double RandNumber::frandom(){return random(maxshort)/double(maxshort);}unsigned short RandNumber::random(unsigned long x,unsigned long y){return random(y-x)+x;}
生成m到n之间的k个不同顺序的随机数
RandNumber randnumber;void rand_m_number1(unsigned long x,unsigned long y,const unsigned int m){static int count=0;if(count==m || x>=y){return;}unsigned long z=randnumber.random1(x,y);count++;printf("%d\t",z);rand_m_number1(x+1,z,m);rand_m_number1(z+1,y,m);}void rand_m_number2(unsigned long x,unsigned long y, unsigned int m){int length=y-x;unsigned long* a=new unsigned long[length];for(int i=0;i<length;i++){a[i]=x+i;}for(int i=0;i<m;i++){int j=randnumber.random(i,length);int tmp=a[i];a[i]=a[j];a[j]=tmp;}for(int i=0;i<m;i++){printf("%d\t",a[i]);}}
- 一种随机数生成算法
- 生成不重复随机数的一种算法
- 生成互不相同随机数的一种算法
- 生成不重复随机数的一种算法。
- 生成不重复随机数的一种算法
- 生成互不相同随机数的一种算法
- 一种PHP随机数生成
- [算法][随机数]一种生成2个不相同的随机数的方法
- 随机数生成算法
- 伪随机数生成算法
- 随机数生成算法
- 随机数生成算法
- java随机数生成算法
- 随机数生成算法
- 随机数生成算法
- 随机数生成算法
- 算法---随机数生成
- 随机数生成算法
- hdu4450-Draw Something
- 了解typename的双重意义
- C表达式中出现有符号数和无符号数时编译器处理的规则
- 水晶报表版本
- HDOJ 1015 Safecracker
- 一种随机数生成算法
- 第十三周 项目二:定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式,派生出Teacher_Cadre(教师兼干部)类
- django admin中 外键下拉框添加过滤(只需要显示我所要的过滤结果)
- 获取分辨率
- mysql 备份 恢复
- Reduce作业运行时错误:Too many fetch-failures
- 获取jar包同目录的配置文件
- C++中fread函数和fwrite函数的用法
- 记录