c语言中的随机函数为rand(),但是rand生成的值得大小主要相对一个变量才产生的一定有含义的数,这个相对的变量我们可以再srand()函数中进行设置,srand函数是void类型,内部含一个无符号整形

定义如下

如果我们不定义的话

重复执行下面的代码产生的效果可能是同一个数

但是如果在srand()中设置一个随时改变的参照量,那么每次执行产生的rand值就不会痛,
我们知道有一个函数time(),这个值是不断的改变的,我们可以将其嵌入在srand中,那么每次产生rand值就会是不同的
 
time()的返回是一个_int64 类型的数,time的定义是 time——t time(time_t *timer)
我们在定义的时候可以不使用返回类型time_t,我们只是调用time(time_t *timer)
那么我们的产生的随机值就存放在了*timer里面,后面我们可以通过只用指针*timer来调用我们产生的值
其中time产生的值就是unix的时间戳,产生的值是以秒为单位来进行计算的,时间的计算就是目前的时间与1970年1月1日0时0分0秒之间的决定值
只不过是用秒来表示,
同时里面的参数可以不为*timer,可以为NULL,也可以直接用0来代替,
 
 
srand()是void类型,我们在srand()里面嵌套不断变化的函数time(0),那么我们产生的随机数每时每刻的相对值都是不同的,所以产生的随机数也就是不同的
 
rand()函数是有返回值的,,至于要求产生多大范围内的数需要自己控制;
 
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-—————————
华丽的分割线
如果上面的理解了,下面是比较官方的解释方法
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
 
rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。
(1)使用该函数首先应在开头包含头文件stdlib.h
#include<stdlib.h>
(C++建议使用#include<cstdlib>,下同)
(2)在标准的c库中rand可以产生于一个0~rand_max之间的一个随机数,rand_max是stdlib中定义的一个数,与系统有关
(3)因为rand每次都是按照顺序产生固定的随机数,所以对于同一个程序,我们多次调用执行,会产生同样的数,也就是产生同样的效果,所以我们有时候也管随机数叫做伪随机数,
(4)为了使得每次随机数生成时都生成一个不同的随机数,也就是不同的随机数序列,所以我们每次都为随机数生成器提供一个新的随机种子,我们可以通过使用srand()产生种子进行散播种子,只要种子不同,我们通过调用rand就会生成不同的随机数,
 
 
 
srand成为随机数生成器的初始化器
 /* This program generates and prints ten random integers between 1 and RAND_MAX*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int seed; /*申明初始化器的种子,注意是unsigned int 型的*/
int k;
printf("Enter a positive integer seed value: \n");
scanf("%u",&seed);
srand(seed);
printf("Random Numbers are:\n");
for(k = ; k <= ; k++)
{
printf("%i",rand());
printf("\n");
}
return ;
}

当种子为1的时候,我们可以不使用srand,因为系统默认·的种子为1

stdlib.h 中这两个函数的原型是:
int rand();
void srand (unsigned int);
srand(time(0)); i=rand();
或者srand(time(NULL));
这样就是一个伪随机数。
rand()产生伪随机数,srand函数提供种子,种子不同产生的随机数序列也不同,所以通常先调用srand函数 time()返回的是系统的时间(从1970.1.1午夜算起),单位:秒,种子不同当然产生的随机数相同几率就很小了。
用rand()随机生成在[x,y]内的整数
int k;
k=x+rand()%(y-x+1)/*k即为所求范围内随机生成的数,rand()%a的结果最大为a-1*/
 
 
 
 
 

c语言随机函数&&时间函数的更多相关文章

  1. [转帖]C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义

    C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/d ...

  2. 常用C语言time时间函数

    常见的时间函数有time( ).ctime( ).gmtime( ).localtime( ).mktime( ).asctime( ).difftime( ).gettimeofday( ).set ...

  3. C语言的时间函数

    下面是C语言的获取本地时间和构造时间进行格式化时间显示输出的相关函数:This page is part of release 3.35 of the Linux man-pages project. ...

  4. R语言日期时间函数

    Sys.Date( ) returns today's date. date() returns the current date and time.# print today's datetoday ...

  5. C 语言 时间函数使用技巧(汇总)

    time.h 头文件 是 C 语言中 有关 时间的函数所储存的头文件 #include <time.h> 在介绍时间函数用法之前,我们首先要了解在 time.h 头文件中已经声明了的一个结 ...

  6. C语言 常用的时间函数

    //时间函数的使用 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include& ...

  7. Loadrunner时间函数、用时间生成订单编号例子

    Loadrunner中取时间函数.用时间函数生成订单编号例子: <如要转载,请注明网络来源及作者:Cheers_Lee> 问题的提出: (1)有时候在Loadrunner中用C语言设计脚本 ...

  8. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

  9. Linux时间函数之gettimeofday()函数之使用方法

    1.简介: 在C语言中可以使用函数gettimeofday()函数来得到时间.它的精度可以达到微妙 2.函数原型: #include<sys/time.h> int gettimeofda ...

随机推荐

  1. JavaWeb学习笔记——JSP标准标签库JSTL

  2. Java关键字——throws和throw

    throws关键字 在定义一个方法时,可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理. 使用了throws关键字,表示不管是否会有异常,在调 ...

  3. OpenGL Registry

    https://www.opengl.org/registry/ https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api ...

  4. Webpack 之 Loader 的使用

    安装 loaders 如果loader在npm里,可以这样安装: $ npm install xxx-loader --save 或者 $ npm install xxx-loader --save- ...

  5. Apache配置--用户认证(针对目录访问)-update2015-05-02

    通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框. ========================================================= ...

  6. Fiddler进行模拟Post提交json数据,总为null解决方式

    Request Headers: User-Agent: FiddlerHost: localhost:3248Content-Type: application/json; charset=utf- ...

  7. phpize 扩展GD库 安装 ! 环境--centos 7 +nginx 1.7.11+php 5.6.7

    使用phpize编译GD库安装,先安装前置库libjpeg libpng zlib  freetype等 都是下面php编译的几个选项 先看php编译的选项: --with-gd=DIR       ...

  8. WebGrid with filtering, paging and sorting 【转】

    WebGrid with filtering, paging and sorting by Jose M. Aguilar on April 24, 2012 in Web Development A ...

  9. 使用session防止重复提交

    一.表单重复提交的常见应用场景 <%@ page language="java" import="java.util.*" pageEncoding=&q ...

  10. MYSQL调优

    4核8G内存配置文件 explain SQL 查看SQL索引使用情况. my.cnf skip-external-locking skip-name-resolve back_log= key_buf ...