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. Spring MVC学习笔记——用户增删该查和服务器端验证

    建立一个动态web项目,起名为SpringMVC_crud 导包,其中包括jstl的一些包等 1.先写一个User.java,是用户类 文件User.java文件 package org.common ...

  2. URL组分

    url通常包含多个组成部分,在js中可通过location对象获取其中各项信息 访问http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2 ...

  3. 60行JavaScript俄罗斯方块

    <!doctype html><html><head></head><body> <div id="box" st ...

  4. PHP----遇到的Session问题

    使用SESSION,当跨页面使用时,会提示错误Cannot modify header information - headers already sent by..., 背景:使用session_s ...

  5. JQuery中serialize()、serializeArray()和param()方法示例介绍

    在项目中做form表单提交的时候,如果参数比较少,可以通过jquery一个个取得,但是当 form表参数很多的情况下,还是一一取得的话无疑是加大了工作量,那我们需要咱们获取到表单的所有参数呢,幸好,j ...

  6. clearInterval,setInterval,clearTimeout,setTimeout

    setInterval("f()",1000)  每隔1秒就执行一次f() clearInterval   关闭clearInterval setTimeout("f() ...

  7. AutoMocker单元测试

    /// <summary> /// 测试获取所有物流 /// </summary> [TestMethod] public void TestExpressController ...

  8. Joomla![1.5-3.4.5]反序列化远程代码执行EXP(直接写shell)

    Usage:x.py http://xxx.com # coding=utf-8# author:KuuKi# Help: joomla 1.5-3.4.5 unserialize remote co ...

  9. 360chrome,google chrome浏览器使用jquery.ajax加载本地html文件

    使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...

  10. Main函数 & Autoreleasepool

    如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任 ...