码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++语言中让电脑随机的在某个范围中的任一随机数

时间:2017-10-13 23:53:04      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:sdn   举例   产生   clu   target   return   范围   max   tar   

这是我在笔试中碰见的一题中一部分,这就就记录下来。举例,输出[1,3]中任一随机数。

 1 #include<iostream>
 2 #include<cstdlib>
 3 #include<cstdio>
 4 #include<ctime>
 5 
 6 
 7 int main()
 8 {
 9     srand((unsigned)time(NULL));
10 
11     int val = 0;
12     for (int i = 0;i < 50;i++)
13     {
14         val = (rand() % 3) + 1;
15         std::cout << i + 1 << " " << val << std::endl;
16     }
17     return 0;
18 }

代码中第九行是什么意思?

在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)

1)首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;

2)然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)

归纳:要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a 或者(rand() * (b-a)) / RAND_MAX + a

Ref:

http://blog.csdn.net/qin_zhangyongheng/article/details/8033936

C/C++语言中让电脑随机的在某个范围中的任一随机数

标签:sdn   举例   产生   clu   target   return   范围   max   tar   

原文地址:http://www.cnblogs.com/love-yh/p/7663510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!