srand rand RAND_MAX
stdlib.h头文件中有宏#define RAND_MAX 0x7fff rand()产生一个0到0x7ffff即0到32767之间的随机数 rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了. srand函数是随机数发生器的初始化函数,原型: void srand(unsigned seed); 它需要提供一个种子,如: srand(1); 直接使用1来初始化种子。不过常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型在传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的 随机输出十个0-100之间的整数 #include <stdlib.h> #include <stdio.h> #include <time.h> void main( void ) { int i,k;srand( (unsigned)time( NULL ) ); for( i = 0; i < 10;i++ ) { k=rand()%100; printf( " k=%d\n", k ); } }
ISO IEC 9899 2011 (C11)标准中未规定 RAND_MAX 的具体数值。但该标准规定了RAND_MAX 的值应至少为32767。编程的时候,不应该对 RAND_MAX 的具体数值做任何假设。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <stdio.h> // printf
#include <stdlib.h> // srand, rand, RAND_MAX, EXIT_SUCCESS
#include <time.h> // time
#define COUNTS (10)
int main( void )
{
double pseudo_random_numbers[COUNTS] = { 0.0 };
int i = 0;
/* 初始化伪随机数生成器 */
srand ((unsigned int ) time (NULL));
/* 产生 COUNTS 个 0.0~1.0 之间的随机浮点数 */
for (i = 0; i < COUNTS; i++)
pseudo_random_numbers[i] = ( double ) rand () / RAND_MAX;
for (i = 0; i < COUNTS; i++)
printf ( "%f\n" , pseudo_random_numbers[i]);
return EXIT_SUCCESS;
}
|
srand rand RAND_MAX相关推荐
- c语言中srand的作用,C语言中srand(), rand(), time()函数 转载
srand函数 srand函数是随机数发生器的初始化函数. 原型:void srand(unsigned seed); 用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子,后面的r ...
- srand rand time函数设置随机值
计算机没有办法产生真正的随机数的,是用算法模拟,所以你只调用rand,每次出来的东西是一样的.设置一个种子后,根据种子的不同,就可以产生不同的数了.而怎么保证种子的不同呢?最简单的办法当然是用永远在向 ...
- [C++学习笔记]C++常见问题大全(二)
C语言中unsigned和signed在声明时有什么作用. 1.unsigned的作用就是将数字类型无符号化, 例如 int 型的范围:-2^31 ~ 2^31 - 1,而unsigned int的范 ...
- 函数极值问题求解——C++实现
对于一个简单函数来说,例如 ,它的图像存在最大值和最小值,那么给定一个区间我们可以利用以下几种方法进行求解.(0<=x<=100,y的值会给出) 方法1:二分法求解 假定存在极小值在区间内 ...
- C++:rand()函数和srand()函数解读
(1)srand(unsigned int t)这个是设定种子. 因为电脑取随机数是伪随机,只要种子一样,则取出来的数一定一样. 这里用time(0)这个内函数,copy则是返回了当前的时间值. 这个 ...
- rand()和srand()关系很简单——一看就明白(通过一个可移植的源码)
1 函数rand和srand实现及描述 #include <stdlib.h> //供rand()使用的种子数,初值为1 unsigned long int next = 1; /* * ...
- rand(),srand()产生随机数
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当 ...
- C++中随机函数rand()和srand()的用法
一.rand() 函数名: rand 功 能: 随机数发生器 用 法: int rand(void); 所在头文件: stdlib.h 函数说明 : rand()的 ...
- C++ rand()函数和srand()函数
随机数和伪随机的区别 : #include<iostream> using namespace std; #include<string>#include<string& ...
最新文章
- 刚毕业的职场萌新应具备这9种技能
- Merge Two Sorted Lists
- 测绘技术设计规定最新版_公示 | 29家单位申报甲级测绘资质审查意见
- 使用Beautifulsoup去除特定标签
- 六部门集中约谈8家网约车顺风车平台 要求加快合规步伐
- 对自定义SharePoint WebService的总结
- Navicat操作SQL server 2008R2文件.bak文件还原
- 简单解说思科命令大全
- RANSAC算法拟合平面实现
- python实现SG滤波
- CDR是什么?CorelDRAW矢量绘图
- 华为计算机主板,华为鲲鹏920台式机主板亮相:性能配置都亮眼
- 超实用!轻松几步修复灰蒙蒙的情侣合照!
- html中的阴影怎么使用,css 内阴影怎么做
- html5 自动格式化,VSCode插件JS-CSS-HTML Formatter自动格式化代码
- Android复杂页面代码拆分方法
- 高通SDX12:Keypad按键相关(PowerKey、Reset)
- 苹果手机上运行python_手机上运行Python
- [win32]c++使用win32开发一个窗口的完整流程【转】
- 面向Web服务的游戏设计1:选择适合的Silverlight通信技术