一个随机数函数和产生随机数的类

基础类
一个随机数函数和产生随机数的类
Vc里只提供了一个rand()随机数取0--32767(我刚学VC不久,很多东西都不懂,也许还有其他的随机函数)
我写的random():
全局变量:
unsigned long holdrand1;


void srand1(unsigned long seed)
//seed should be equal a random
//for example:=(unsigned)time( NULL )
{
holdrand1 = seed;
}

unsigned long random(unsigned long Range)
//0<=return value<Range
{
holdrand1 = (holdrand1 * 73279687L
            + 302460951874L) >> 2;
return holdrand1 % Range;
}

//---------------------------------------------------------------
产生随机数的类:

#include<stdlib.h>
UINT rnd(UINT r){
return UINT((double)rand()/(RAND_MAX+1)*r);
}
class Rnd{
public:
Rnd(UINT a){if(a==0||a==1){MessageBox(NULL,"类Rnd参数错误!","内部错误",0);exit(1);}n=a;nn=a;m=new UINT[a];for(b=0;b<n;b++)m[b]=b;srand((unsigned)GetTickCount());}
~Rnd(){delete[] m;}
UINT rd(){
if(n==0){for(b=0;b<nn;b++)m[b]=b;n=nn;}
b=rnd(n);
if(c==m[b]){if(b>0)b--;else b++;}
c=m[b];
m[b]=m[n-1];
n--;
return c;
}
private:
UINT n,nn,b,c;
UINT *m;
};

 


优快云 VC编程经验总结

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值