获取系统信息2——linux中使用随机数
以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。
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系统收集系统中的一些随机发生的事件的时间(譬如有人动鼠标,譬如触摸屏的操作和坐标等)作为随机种子去生成随机数序列。
获取系统信息2——linux中使用随机数相关推荐
- 获取系统信息1——linux系统中的时间
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.关于时间的概念 1.GMT时间 GMT是格林尼治时间,也就是格林尼治地区的当地时间: 用格林尼治的当地时间作为 ...
- linux中产生随机数函数,如何用C++产生随机数
C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数. (1) 如果你只要产生随机数而不需要设定范围的 ...
- linux中使用随机数
(1)单纯使用rand重复调用n次,就会得到一个0-RAND_MAX之间的伪随机数,如果需要调整范围,可以得到随机数序列后再进行计算. (2)单纯使用rand来得到伪随机数序列有缺陷,每次执行程序得到 ...
- Linux——获取系统信息
目录 一.关于时间的概念 二.linux系统中的时间 三.时间相关API实战 五.proc文件系统介绍 六.proc文件系统的使用 一.关于时间的概念 1.GMT时间 (1)GMT是格林尼治时间,也就 ...
- 朱有鹏-3.linux应用编程和网络编程-第3部分-3.3.获取系统信息
3.3.1.关于时间的概念 3.3.1.1.GMT时间 (1)GMT是格林尼治时间,也就是格林尼治地区的当地之间. (2)GMT时间的意义?[用格林尼治的当地时间作为全球国际时间],用以描述全球性的事 ...
- linux上无法发送163邮件,如何在linux中发送邮件,使用163邮箱发信。
linux中,可以使用mail命令往外发送邮件,在使用前,只需要指定如下简单配置即可,这里演示用 163.com 邮箱发送至 qq.com 编辑 /etc/mail.rc,写入下方的参数 se ...
- linux中操作文件的上传和下载
获取权限 进入linux中,可以先获取操作权限,防止无权操作: sudo -i 然后回车 进入相应的目录下 cd /data/xxxxx 然后回车 上传文件 rz 然后回车 页面会有个弹窗让你选择需要 ...
- linux信息收集命令,linux中收集系统信息的一些命令
摘要 腾兴网为您分享:linux中收集系统信息的一些命令,知富,掌上优云,掌上电力,悟空识字等软件知识,以及酷我音乐pc,国泰君安app,云校阅卷,一键超频软件,美折,三国群英私服,咔咔截屏录屏大师, ...
- python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息
最近在学习excel表格的制作,顺便结合之前学习的内容,利用python的两个模板,分别是获取系统信息的psutil,和生成excel表格的xlsxwriter.利用这两个模板将生成一个简单的exce ...
最新文章
- 地址引用PHP,浅谈PHP变量作用域以及地址引用问题
- 25个必须记住的SSH命令
- Qt调用dll中的功能函数
- powershell awk_谈谈 PowerShell
- Linux系统瘦身裁剪 续
- 简单的动态JavaScript Ajax函数
- 开发转测试没人要_iOS13beta8发布,微信再次测试新功能
- 周五,放松心情,听我来分享问题背后的背后(一)
- 单机使用tungsten 同步mysql数据到mongodb
- hudson构建配置
- moc 文件自动生成
- href和src的区别
- 游戏服务器运维常见故障总结
- 不容错过, Paintinglite轻量级Sqlite3框架
- 误删的苹果电脑硬盘和数据库的数据怎么恢复
- 自然》子刊同期刊发两篇重磅论文:月球上的水很多-1
- Linux 7.9.三台机器机器免密码登录
- |密码狗|Dongle|克隆狗|U盘狗
- 线性代数物理意义学习(从几何角度出发,不同于数值解析解)
- iWatch 的text和label
热门文章
- mysql 行转列 (结果集以坐标显示)
- [LeetCode]LRU Cache有个问题,求大神解答【已解决】
- android学习日记12--布局管理器
- Dojo学习笔记(三):类化JavaScript
- 如何:将 TraceSource 和筛选器与跟踪侦听器一起使用(转载)
- Java与.Net 在RSA加密方面能不能互相通讯操作???
- 好程序员前端分享使用JS开发简单的音乐播放器
- Spring集成redis(Spring Data Redis)
- scanf 输入加逗号(或者不加逗号)出现的异常及解决方案
- Python:字典列表字符串方法测试