srand()以及rand()函数用法

rand(void)用于产生一个伪随机unsigned int 整数。 
srand(seed)用于给rand()函数设定种子。
srand 和 rand 应该组和使用。一般来说,srand 是对 rand 进行设置。 
比如: 
srand((UINT)GetCurrentTime()); 
int x = rand() % 100; 
是生成 0 到 100 之间的随机数。
srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,他不是真
的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,式子如下: 
rand = rand*const_1 + c_var; 
srand函数就是给它的第一个rand值。
用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的, 
比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))   产生一个0到n之间的随机数

RAND_MAX=0x7fffffff

//函数:RandomInit
//该函数取当前系统时间作为随机数发生器的种子
void RandomInit()
{
  srand(time(NULL));
}

// 函数:RandomInteger
// 该函数将0到RAND_MAX的区间的划分成high - low + 1 个
// 子区间。当产生的随机数落在第一个子区间时,则映射成low。
// 当落在最后一个子区间时,映射成high。当落在第i个子区间时
//(i从0到high-low),则映射到low + i
int RandomInteger(int low, int high)
{
 return (low + (high - low + 1) * rand() / (RAND_MAX + 1));
 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值