C语言rand()函数重置种子问题
今天写了一个小程序,生成100个0到10的随机数,但一运行就生成了同样的数,诡异的是调试时生成的数还都是随机的,源代码为
int nums[SIZE];for (int j = 0; j < SIZE; j++){srand(time(0));//重置种子int i = rand()% 10+1;//获得0~10的随机数nums[j] = i; }
经过翻查C primer plus后,发现随机数的运行原理为rand函数生成伪随机值,但这个随机值是有规律的。不过我们可以通过重置种子函数中的静态变量,去更改rand函数中的值,就可以生成看似真正的随机数。这里重置种子用的是time.h中的time函数,time函数返回一个time_t的值,可运算,由于时间是一直在变的,所以就可以自动重置种子,生成新的随机数。但是如果把srand函数放在一个迭代很快的循环里,那么时间几乎是不变的,自然而然就起不到重置种子的作用,最坑的是,如果你f分步调试,就根本查不出来bug!因为调试时程序运行的时间大大超过了正常运行的时间!!这里time函数才会真正的起作用。更改后,源代码为:
int nums[SIZE];srand(time(0));//重置种子for (int j = 0; j < SIZE; j++){int i = rand()% times+1;//获得0~10的随机数nums[j] = i; }
输出结果为:
C语言rand()函数重置种子问题相关推荐
- c语言rand函数时间种子,C语言中以时间为种子,产生随机数的函数
srand((unsigned)time(NULL) +++++++++++++++++++++++++++++++++++++++++++++++++ 以时间为种子,其实再产生随机数的函数中都会加, ...
- C语言(rand函数)
C语言(rand函数) (2006-09-24 20:41:59) 转载 srand()就是给rand()提供种子seed 1,先看一个例子 #include <iostream> ...
- C语言rand()函数产生随机数详解
C语言rand函数产生随机数详解 1.rand函数的原型,功能和界限 2.用rand函数获取随机数 3.随机数生成原理 1.rand函数的原型,功能和界限 rand函数的原型: #include &l ...
- c语言rand函数_C语言随机函数学不明白?一知识一案例,全面解析C语言随机函数
前言 本文主要讲解C语言的随机函数,学习随机函数将由此拉开序幕,亲爱的准备好了没? 随机数 随机数主要是通过rand()函数产生的,rand() 函数可以随机产生一个正整数,它会产生一个无符号整数,范 ...
- C语言 rand函数(随机)
rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子.如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand().而使用同种子相 ...
- c语言rand函数的作用,详解C语言中rand函数的使用
前言 我们在编程实现算法的过程中,往往需要使用到随机数.由于计算机是一台以逻辑为基础的机器,没法做到真正的随机(大概量子计算机可以?).所以计算机生成的是伪随机数,供我们使用. 我们使用C语言的ran ...
- C语言 rand函数,srand函数 生成随机数用法详解
与随机数有关的两个函数,srand() 和 rand(),这两个函数都包含"stdlib.h"头文件里 srand()函数是随机数发生器,使得每轮产生的随机数列都不相同. ...
- c语言rand函数的使用范围,C random C ++rand函数应用
random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过.但在C语言中int random(num)能够这样使用,它返回的是0至num-1的一个随机数. 可改用C++下的rand函数 ...
- C语言rand()函数解析
C语言的rand()函数位于<stdlib.h>.该函数可以生成一个取值为0-32767的伪随机数.先看一下函数的实现. unsigned long int next = 1;int ra ...
最新文章
- Fedora 17删除旧内核的操作
- php 5 在虚拟主机上安装,Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程...
- Java中的浮点数四舍五入到小数点后2位的一些实用方法
- c位边上还有什么位_会议桌C位,是它!
- vim - multiple windows
- javascript之复习(框架里的方法们)
- Oracle DBHelper 第二版
- JSP-08-第三方控件的使用
- Binder机制原理简述
- 蓝牙防丢器原理和作用
- In-Class Essay结构范文分享
- 【渝粤题库】广东开放大学 标准化专业英语 形成性考核
- 证书有效性验证、根证书
- 周 7 福利日:中奖名单公布
- jsch jar包连接不上ssh报Algorithm negotiation fail 错误
- NSString文本替换
- 图形学学习笔记2——点阵图形光栅化
- echarts中如何配置图例形状、图标宽高、图标和文字间距、图例位置、文字颜色、字体大小
- 03 - 大学生如何使用GPT
- kotlin_08:wlan直连/wifi_p2p的页面跳转以及实时获取连接状态