当前位置: 代码迷 >> C语言 >> 随机数问题!
  详细解决方案

随机数问题!

热度:340   发布时间:2006-05-10 07:18:00.0
以下是引用feng1256在2006-5-9 22:54:00的发言:

0---0x7fff 之间,当然自己也可以设定

我没做过具体测试
在库函数介绍里是说是-90~32767


----------------解决方案--------------------------------------------------------
以下是引用seagullFHcn在2006-5-9 21:24:00的发言:
const unsigned long maxshort=65536L;
class RandomNumber
{
private:
unsigned long randseed;
public:
RandomNumber(unsigned long s=0);
unsigned short Random(unsigned long n);
double fRandom(void);
};
RandomNumber::RandomNumber(unsigned long s)
{
if(s==0)
randseed=time(0);
else
randseed=s;
}
unsigned short RandomNumber::Random(unsigned long n)
{
randseed=multiplier*randseed+adder;
return (unsigned short)((randseed>>16)%n);
}
double RandomNumber::fRandom(void)
{
return Random(maxshort)/double(maxshort);
}
然后需要用随机数时写上
RandomNumber ***(变量名);
则***.fRandom()返回的就是一个0~1的double型随机数。
当然你要更大的自己再乘上放大倍数就可以了。

我最近在自学c++这东西,以后还请阁下多多帮忙了!


----------------解决方案--------------------------------------------------------
  相关解决方案