(1)单纯使用rand重复调用n次,就会得到一个0-RAND_MAX之间的伪随机数,如果需要调整范围,可以得到随机数序列后再进行计算。
(2)单纯使用rand来得到伪随机数序列有缺陷,每次执行程序得到的伪随机序列是同一个序列,没法得到其他序列
(3)原因是因为rand内部的算法其实是通过一个种子(seed,其实就是一个原始参数,int类型),rand内部默认是使用1作为seed的,种子一定的算法也是一定的,那么每次得到的伪随机序列肯定是同一个。
(4)所以要想每次执行这个程序获取的伪随机序列不同,则每次都要给不同的种子。用srand函数来设置种子。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
int main(int argc ,char ** argv)
{struct timeval tv={0};struct timezone tz ={0};/*     if(argc!=2){printf("usage:%s num\n",argv[0]);return -1;} *///srand(atoi(argv[1]));gettimeofday(&tv,&tz);//获取微妙数
    srand(tv.tv_usec);printf("rand max%d\n",RAND_MAX);for ( int i =0 ; i<6 ; i++){printf(" %d ",rand()%20);    }printf("\n");        return 0;
}

转载于:https://www.cnblogs.com/PengfeiSong/p/6562309.html

linux中使用随机数相关推荐

  1. 获取系统信息2——linux中使用随机数

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.随机数和伪随机数 随机数是随机出现,没有任何规律的一组数列. 真正的完全随机的数列是不存在的,只是一种理想情况 ...

  2. linux中产生随机数函数,如何用C++产生随机数

    C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数. (1) 如果你只要产生随机数而不需要设定范围的 ...

  3. linux上无法发送163邮件,如何在linux中发送邮件,使用163邮箱发信。

    linux中,可以使用mail命令往外发送邮件,在使用前,只需要指定如下简单配置即可,这里演示用  163.com    邮箱发送至 qq.com 编辑 /etc/mail.rc,写入下方的参数 se ...

  4. Linux中使用shell脚本生成随机数

    Linux中使用shell脚本生成随机数 1.主体思想: 为了实现随机数的随机性,所以在这里借用date中的%s%N可以输出从1970年1月1日00:00:00到目前经历的秒数,从而产生变化的数字,再 ...

  5. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random, ThreadLocalRandom 即 ...

  6. Linux 文件安全之随机数生成器

    Linux 文件安全之随机数生成器 笔者:李晓辉 数据安全这一话题,在如今这个时代,哪里都在喊,但是我们每天都能看到由于数据安全不到位,造成多少多少损失,说实话,谁也不能保证数据的绝对安全,只有相对的 ...

  7. linux shell实现随机数多种方法(date,random,uuid)

    在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这 ...

  8. java随机10位随机数 random.uuid_一文详解编程中的随机数

    随机数,相信大家都不陌生,网上有很多生成随机数的小工具.直观来看,随机数就是一串杂乱无章的数字.字母.以及符号的组合, 比如pSTkKIiZMOlDxOgwpIQGdlZwrJCRiHRK.但随机数真 ...

  9. linux 查看 man 路径配置文件 man.config,linux中的man(zz)

    Linux中 man命令是初学者必须要掌握的一个Linux重要命令,这个命令可以帮助在学习中遇到的各种不会使用的命令问题,每个命令的不同的使用方法都可以在这里查找的到,获得相关的帮助信息. (1)ma ...

最新文章

  1. Java多线程之阻塞I/O如何中断
  2. n1Linux分辨率,看看诺基亚曾经的六款平板电脑 N1不是第一
  3. android 下的网络图片加载
  4. javascript继承一览
  5. 明年起网剧可参评白玉兰奖 你期待哪部网剧上榜?
  6. 从大到小输出a、b、c(选择结构)
  7. Linux基本操作(6)——Linux 重写rm 命令 实现回收站功能
  8. Idea:新版本Idea底部工具栏Git中没有Local Changes
  9. Windows2012 系统从MBR转GPT免重装的经验
  10. Oracle Class6-1. PL/SQL 简介(数据类型,逻辑比较,控制结构,错误处理)
  11. 一周上手flutter
  12. Step1我学习ros2的一些经历(从ubuntu安装到ros2中的位姿转换)
  13. EPICS -- pyDevice
  14. 苹果cmsV10仿优酷模板,最新自适应苹果cms模板
  15. js中无区别分割中英文逗号的字符串成为数组
  16. 野指针,数组指针,指针数组
  17. VUE3中实现浏览器全屏功能
  18. 雷军狂送20亿给员工:网络工程师怎样才能最快体验到大厂待遇?
  19. 红酒、白酒数据集分析——案例(1)
  20. VassistX自定义快捷代码

热门文章

  1. C#通过VS连接MySQL数据库实现增删改查基本操作
  2. 第一章 基础知识---1.4Crack小实验--复现
  3. C++ 拷贝构造函数与赋值构造函数调用时机初步01
  4. Linux系统【一】CPU+MMU+fork函数创建进程
  5. linux交叉编译时报错:file not recognized: File format not recognized
  6. 【汇编语言】王爽第六章程序6.3解答,8086汇编语言实现数据的倒序存放
  7. 07-图4 哈利·波特的考试 (25 分)
  8. MySQL+Tomcat+JVM,看完还怕面试官
  9. CSS的三种基础选择器,面试必问
  10. jsp+js实现二级级联