随机数生成解析
来源:互联网 发布:ubuntu wine qq2015 编辑:程序博客网 时间:2024/06/05 11:30
我们平时在做一些分析数据的时候经常会用到随机数,我们知道,随机数是一个设备,在利用这个设备生成随机数时,需要提供一个种子,如果我们不提供,那么默认会提供一个为1的种子,这时,随机数生成器生成的并不是真正意义上的随机数,因为每次那些随机数都是相同的,例如下面的这个例子:
#include<stdio.h>#include<stdlib.h>#include<time.h>void print_rand();int main(void){print_rand();printf("\n");}void print_rand(){int a[10], i;for(i = 0; i < 10; i++){a[i] = rand()%100;}for(i = 0; i < 10; i++){printf("%d ", a[i]);}}
我现在连续三次执行这个程序,得到如下所示的输出。
现在,我把程序改动如下:
#include<stdio.h>#include<stdlib.h>#include<time.h>void print_rand();int main(void){print_rand();printf("\n");}void print_rand(){int a[10], i;srand(time(NULL)); for(i = 0; i < 10; i++){a[i] = rand()%100;}for(i = 0; i < 10; i++){printf("%d ", a[i]);}}
同样执行三次,得到的输出如下:
从两次执行的程序可以看出,第一个程序得到的输出都是一样的,因为种子没有变,始终是1,第二个程序输出的每一次都不一样,因为,我用到了这个函数:
srand(time(NULL));这个函数是为 rand()提供种子的,为了使每次提供的种子都不一样,我把时间作为参数提供给函数,由于时间肯定是每次都不同的,所以,这样得到的才是真正意义上的随机数。
- 随机数生成解析
- 随机数生成解析
- 生成随机数方法解析
- PHP随机数生成与使用解析
- PHP随机数生成与使用解析
- 等概率生成随机数问题解析
- 【随机数】生成随机数模板
- 生成随机数
- 随机数生成
- 随机数生成
- 生成随机数
- 生成随机数
- 生成随机数
- 随机数生成
- 随机数生成
- 生成随机数
- 生成随机数
- 随机数生成
- vTiger 6.0.0 语言包安装方法
- 【转】允许archlinux中普通用户关机
- SerialVersionUID 深入理解
- 深入理解android之IPC机制与Binder框架
- mysql_num_rows VS COUNT 效率问题分析
- 随机数生成解析
- 使用javabean实现分页技术
- 迭代器模式
- spring mvc注解例子
- 个人学习步骤
- 各大网站(写挂篇)
- 极客技术专题【007期】:jQuery初学者入门 - jQuery Event
- 博客开通
- AES算法分析与实现