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

C++ 生成随机数

时间:2018-08-01 14:27:52      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:系统   ble   stream   []   code   null   时钟   define   har   

Rand函数

单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767。不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变。

srand函数

srand()可用来设置rand()产生随机数时的随机数种子。通过设置不同的种子,我们可以获取不同的随机数序列。可以利用srand((unsigned int)(time(NULL))的方法,利用系统时钟,产生不同的随机数种子。

 

示例:

 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <stdlib.h>
 4 #include <time.h>
 5 
 6 #define random(x,y) (((double)rand()/RAND_MAX)*(y-x+1)+x)
 7 
 8 using namespace std;
 9 
10 int _tmain(int argc, _TCHAR* argv[])
11 {
12     srand((int)time(NULL));
13 
14     for (int i = 0; i < 200; i++)
15     {
16         cout << "num :   " << (int)random(0, 10) << endl;
17     }
18 
19     getchar();
20     return 0;
21 }

 

随机数获取范围的方法 

(double)rand()/RAND_MAX)*(y-x+1)+x)

(0,x)的随机整数:rand()%x 或者 (double)rand()/RAND_MAX)*(x)

(a,b)的随机整数:rand()%(b-a) 或者 (double)rand()/RAND_MAX)*(b-a-1)+a+1

[a,b)的随机整数:rand()%(b-a)+a 或者 (double)rand()/RAND_MAX)*(b-a)+a

[a,b]的随机整数:rand()%(b-a+1)+a 或者 (double)rand()/RAND_MAX)*(b-a+1)+a

(a,b]的随机整数:rand()%(b-a)+a+1 或者 (double)rand()/RAND_MAX)*(b-a)+a+1

0-1之间的浮点数:rand()/double(RAND_MAX)。

C++ 生成随机数

标签:系统   ble   stream   []   code   null   时钟   define   har   

原文地址:https://www.cnblogs.com/tyche116/p/9400454.html

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