C++随机数rand(), srand()

c++产生随机数会用到rand(), srand()函数,下面总结两个函数特性和使用。

1. rand()

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	int m;

	for(int i = 1; i <= 5; i++)
	{
		m = rand();
		cout << "m = " << m << endl;
	}

	return 0;
}

2. srand()

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
	int m;
	srand((unsigned)time(NULL));

	for(int i = 1; i <= 5; i++)
	{
		m = rand();
		cout << "m = " << m << endl;
	}

	return 0;
}

3. 产生一定范围随机数的公式

获取[a,b)的随机整数,使用(rand() % (b-a))+ a; 
获取[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 
获取(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 
获取0~1之间的浮点数,可以使用rand() / double(RAND_MAX)

[参考文章:如有侵权,请告知,立即删除]

1. http://www.cnblogs.com/afarmer/archive/2011/05/01/2033715.html

2. http://blog.csdn.net/peixuan197/article/details/48084843

时间: 2024-10-27 13:08:13

C++随机数rand(), srand()的相关文章

C/C++中产生随机数(rand,srand用法)

计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了.) 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,

[转]C++/C中产生随机数(rand,srand用法)

参考原文地址:https://www.cnblogs.com/afarmer/archive/2011/05/01/2033715.html 计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生的每个小序列都有一个初始值,即随机种子(即根据某一个初始值代入某个公式产生一系列值),注意:小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后,它们又会重复出现. 我们知道rand()函数可以用来产生随机数,但这不是真正意义上

【编程开发】C语言中随机数rand使用注意事项

[编程开发]C语言中随机数rand使用注意事项 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:随机数在编程开发中非常重要,以C语言中的rand函数为例,使用时需要注意随机数的随机体现在哪里,比如是程序在不同的时刻执行时,相同位置的随机数是否需要一样,还是要每次执行生成的随机数也要不一样,等等,这些都是需要加以关注的地方. 经测试,发现,在不使用srand这个随机数种子的情况下:每次运行生成的随机数都是一样的.有的时候是需要这样子的,当然可以直接使

rand(),srand()区别

先从随机数的原理谈起. 计算机的随机数都是由伪随机数,即是由小M多项式序列生成.产生每个小序列都有一个初始值,即随机种子. srand()产生随机种子. rand()产生随机数 要保证计算机产生不相同的随机数,应保证它们的随机种子是不一样的. srand( (unsigned)time( NULL ) ); 就是以时间做为随机种子,因为每次你运行的时间总是不一样的. 补充一点是小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,即你取得65535个随机数后它们

神奇的随机数rand()

随机数在统计理论中占有很重要的地位,很多应用都需要用到他,系统自带的rand()函数产生的是伪随机数,所以该如何真正的随机数呢? 1.c语言中的时间函数 关于c语言我查到的两个比较好的博文是:http://blog.sina.com.cn/s/blog_686d0fb001012o3x.html http://blog.csdn.net/wangluojisuan/article/details/7045592/ 里面写的很是详细,但是我想通过一个例子来说明感觉比较好.常用的也就这几个. cha

C/C++随机数rand()和种子函数srand()

在计算机编程中,常常要产生一个随机数.但是要让计算机产生一个随机数并不那么容易.计算机的执行,是以代码来进行的,所以并不可能像抽牌,扔骰子那样产生一个真正具有随机意义的数.只可能以一定的算法产生一个伪随机数,C/C++提供了一个函数,放在cstdlib中,叫做rand(),原型为:int rand(void);. 显然,这个函数不接受任何参数,它的作用是:产生一个[0..RAND_MAX]之间的随机数.RAND_MAX也存放在cstdlib中,是一个宏常量: #define RAND_MAX O

数据结构及算法篇bsearch crypt lfind lsearch qsort rand srand

crypt(将密码或数据编码) 相关函数 getpass 表头文件 #define _XOPEN_SOURCE #include<unistd.h> 定义函数 char * crypt (const char *key,const char * salt); 函数说明 crypt()将使用Data Encryption Standard(DES)演算法将参数key所指的字符串加以编码,key字符串长度仅取前8个字符,超过此长度的字符没有意义.参数salt为两个字 符组成的字符串,由a-z.A-

rand srand

题外:先定义一个指针变量int *a; 再将整数b的地址赋给指针变量 a=&b ;    谨记指针变量a只是地址 *a相当于整数 之后*a 就可以表示 指向b了 也可以在定义的时候初始化 int *a=&b; int q=2; _p=&q; 此时*_p 和q 都为2*_p=1;因为*_p是指向存储q的地址的  所以*_p的值发生改变q也改变 rand()产生一个0~32767之间的伪随机数.而srand(unsigned t)是为rand()产生伪随机数下一个"种子&qu

mysql 随机数 rand使用

生成随机数 生成0-3的随机数 SELECT RAND() * 3 最大不会超过3, SELECT FLOOR(RAND() * 3) 上面生成整数的值是0,1,2,3生成的随机整数是1,2,3的话,语句如下 SELECT FLOOR(1 + RAND()*3) 原文地址:https://www.cnblogs.com/phpper/p/8638545.html