获取系统信息2——linux中使用随机数
来源:互联网 发布:win10 专业版网络受限 编辑:程序博客网 时间:2024/06/10 01:21
以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。
1、随机数和伪随机数
- 随机数是随机出现,没有任何规律的一组数列。
- 真正的完全随机的数列是不存在的,只是一种理想情况。
- 一般只能通过一些算法得到一个伪随机数序列。
- 平时说到随机数,基本都指的是伪随机数。
2、linux中随机数相关API
- 连续多次调用rand函数可以返回一个伪随机数序列;
- srand函数用来设置rand获取的伪随机序列的种子。
3、实战演示
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){int i = 0, val = 0;/*if (argc != 2){printf("usage: %s num\n", argv[0]);return -1;}*/printf("RAND_MAX = %d.\n", RAND_MAX);// 2147483647//srand(atoi(argv[1]));srand(time(NULL));for (i=0; i<6; i++){val = rand();printf("%d ", (val % 6));}printf("\n");return 0;}
- 单纯使用rand重复调用n次,就会得到一个0-RAND_MAX之间的伪随机数,如果需要调整范围,可以得到随机数序列后再进行计算。
- 单纯使用rand来得到伪随机数序列有缺陷,每次执行程序得到的伪随机序列是同一个序列,没法得到其他序列;
- rand内部的算法是通过一个种子(seed,其实就是一个原始参数,int类型),rand内部默认是使用1作为seed的,种子一定的算法也是一定的,那么每次得到的伪随机序列肯定是同一个。
- 要想每次执行这个程序获取的伪随机序列不同,则每次都要给不同的种子。用srand函数来设置种子。
4、总结和说明
- 在每次执行程序时,先用srand设置一个不同的种子,然后再多次调用rand获取一个伪随机序列,这样就可以每次都得到一个不同的伪随机序列。
- 一般常规做法是用time函数的返回值来做srand的参数。
5、在linux系统中获取真正的随机数
- linux系统收集系统中的一些随机发生的事件的时间(譬如有人动鼠标,譬如触摸屏的操作和坐标等)作为随机种子去生成随机数序列。
阅读全文
0 0
- 获取系统信息2——linux中使用随机数
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- 使用 Python 获取 Linux 系统信息
- linux系统获取硬盘使用信息
- 使用 Python 获取 Linux 系统信息
- python中系统信息获取psutil使用
- 获取系统信息1——linux系统中的时间
- linux中使用随机数
- 获取linux系统信息
- 获取Linux系统信息
- linux系统使用python获取内存使用信息
- java使用sigar获取linux系统内存使用信息 注意事项
- 获取系统运行进程信息——PSAPI介绍使用
- 获取系统运行进程信息——PSAPI介绍使用 .
- 获取系统运行进程信息——PSAPI介绍使用
- python 获取系统信息—psutil安装及使用
- monitor-single-one-docker-host
- Delphi程序设计中的鼠标控制
- spring框架搭建
- OpenCV3.2.0在VS2015上的配置
- Volatile关键字详解
- 获取系统信息2——linux中使用随机数
- PHP实现队列及队列原理
- opencl_1
- 【DFS】coj 1061 【魔方系列】最大色块
- 1021. 个位数统计
- 使用Loadrunner录制手机终端App脚本
- 多线程【概述+基本使用】
- PowerDesigner中Table视图同时显示Code和Name
- 使用正则表达式模拟读写INI文件