随机数的生成

C语言随机数生成技巧
本文介绍了C语言中使用rand()函数生成随机数的方法,并详细解释了如何通过srand()结合time(NULL)确保每次程序运行时产生不同的随机数序列。此外,还提供了获取指定区间随机数的具体实现。


rand() 可获得伪随机数。但是仅仅这样写的话,同一段代码每次运行程序获得的随机数相同。

因为在调用rand()前自动调用了srand(1); 这条语句。 只有当srand()的形参是变化的时每次运行获得的随机数才不同。

用什么样的随时变化的参数呢? 用time(NULL),  即srand((unsigned)time(NULL)); rand(); 这样每次运行得到的随机数不同。

如何获得某个区间的随机数?
      ---- 如果是区间[0,n),   rand()%n 就可以了
      ---- 如果是区间[m,n),  rand()%n+m 就可以了
     ----如果是区[0,1), rand()/double(RAND_MAX) 就可以可以了。(RAND_MAX在cstdlib里有定义)

这里有更详细的介绍:
http://blog.youkuaiyun.com/zhoubl668/archive/2009/01/04/3704604.aspx

幸运草 2010-01-21 15:37 发表评论

转载于:https://www.cnblogs.com/liyuxia713/archive/2010/01/21/2540795.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值