C++如何生成随机数

随机数的生成
1.最简单的随机数生成
只要产生随机数而不需要设定范围的话,只要用rand()就可以了,
rand()会返回一随机数值, 范围在0至RAND_MAX 间。
RAND_MAX定义在stdlib.h, 其值为2147483647。
代码如下:

# include <iostream>

using namespace std;
 int main()
 {
    for(int i=0;i<10;i++)
    {
        cout<<rand()<<endl;
    }
 }
 运行结果生成10个随机数:
41
18467
6334
26500
19169
15724
11478
29358
26962
24464

2.获取一定范围内的随机数的话,对上面生成随机数作取余操作即可;
代码如下:

# include <iostream>

using namespace std;
 int main()
 {
    for(int i=0;i<10;i++)
    {
        cout<<rand()%10<<endl;
    }
 }
 运行结果:
1
7
4
0
9
4
8
8
2
4

3.获取随机生成的小数,在上面操作的基础上,作除法操作即可;
代码如下:

# include <iostream>

# define    NUMMOD  20000 
# define    NUMDEV  10000.0
using namespace std;
 int main()
 {
    for(int i=0;i<10;i++)
    {
        cout<<(rand()%NUMMOD)/NUMDEV<<endl;
    }
 }
 运行结果: NUMMOD 决定生成随机数的值的范围
          NUMDEV 决定取余后生成的小数的范围
0.0041
1.8467
0.6334
0.65
1.9169
1.5724
1.1478
0.9358
0.6962
0.4464

4.每次运行rand()函数,生成的随机数是不变的,如果用srand()函数就可以为rand()函数生成随机数种子,每次运行rand()函数的结果就会大不相同。

# include <iostream>
# include<ctime>

# define    NUMMOD  10 
//# define  NUMDEV  10000.0
using namespace std;
 int main()
 {
    srand(time(0));//);//time(0)返回的是系统的时间(从1970.1.1午夜算起),单位:秒
    for(int i=0;i<10;i++)
    {
        cout<<(rand()%NUMMOD)<<endl;
    }
    system("pause");
 }

这样,每次运行就会产生不同的随机数。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值