广告
返回顶部
首页 > 资讯 > 服务器 >shell 生成随机数的实现方法总结
  • 449
分享到

shell 生成随机数的实现方法总结

随机数方法shell 2022-06-04 21:06:02 449人浏览 安东尼
摘要

shell 生成随机数的实现方法总结 1. 使用系统的 $RANDOM 变量 mimvp@ubuntu:~$ echo $RANDOM 17617 $RANDOM 的范围是 [0, 32767] 如

shell 生成随机数的实现方法总结

1. 使用系统的 $RANDOM 变量


mimvp@ubuntu:~$ echo $RANDOM
17617

$RANDOM 的范围是 [0, 32767]

如需要生成超过32767的随机数,可以用以下方法实现。

例:生成400000~500000的随机数


#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(($RANDOM+1000000000)) #增加一个10位的数再求余
  echo $(($num%$max+$min))
}
 
rnd=$(rand 400000 500000)
echo $rnd
 
exit 0

2. 使用date +%s%N

例:生成1~50的随机数


#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(date +%s%N)
  echo $(($num%$max+$min))
}
 
rnd=$(rand 1 50)
echo $rnd
 
exit 0

3. 使用/dev/random 和 /dev/urandom

/dev/random 存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待。

/dev/urandom 非阻塞随机数发生器,读取操作不会产生阻塞。

例:使用/dev/urandom生成100~500的随机数,使用urandom避免阻塞。


#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(cat /dev/urandom | head -n 10 | cksum | awk -F ' ' '{print $1}')
  echo $(($num%$max+$min))
}
 
rnd=$(rand 100 500)
echo $rnd
 
exit 0
 

4. 使用 linux uuid

uuid 全称是通用唯一识别码,格式包含32个16进制数字,以'-‘连接号分为5段。形式为8-4-4-4-12 的32个字符。


mimvp@ubuntu:~/shell$ cat /proc/sys/kernel/random/uuid
fd496199-372a-403e-8ec9-bf4c52cbd9cd

例:使用linux uuid 生成100~500随机数


#!/bin/bash
 
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(cat /proc/sys/kernel/random/uuid | cksum | awk -F ' ' '{print $1}')
  echo $(($num%$max+$min))
}
 
rnd=$(rand 100 500)
echo $rnd
 
exit 0
 

5. 生成随机字符串

例:生成10位随机字符串


#使用date 生成随机字符串
date +%s%N | md5sum | head -c 10
 
#使用 /dev/urandom 生成随机字符串
cat /dev/urandom | head -n 10 | md5sum | head -c 10

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

--结束END--

本文标题: shell 生成随机数的实现方法总结

本文链接: https://www.lsjlt.com/news/18555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell 生成随机数的实现方法总结
    shell 生成随机数的实现方法总结 1. 使用系统的 $RANDOM 变量 mimvp@ubuntu:~$ echo $RANDOM 17617 $RANDOM 的范围是 [0, 32767] 如...
    99+
    2022-06-04
    随机数 方法 shell
  • java生成不重复的随机数方法总结
    本文给大家介绍如何在JAVA中实现随机无重复数字的功能。(相关视频课程推荐:java视频教程)为了更好地理解这个题意,我们先来看下具体内容:生成一个1-100的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元素不能重复。在这里呢,...
    99+
    2018-12-23
    java
  • Python随机值生成的常用方法总结
    目录一、随机整数二、随机浮点数三、随机字符串四、随机数使用到的一些算法一、随机整数 1.包含上下限:[a, b] import random #1、随机整数:包含上下限:[a, b]...
    99+
    2022-11-11
  • Python生成随机数组的方法小结
    本文实例讲述了Python生成随机数组的方法。分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Python生成随机数组的方法稍作总结,以备以后...
    99+
    2022-06-04
    数组 小结 方法
  • shell产生随机数七种方法的实现
    一、问题 Shell下有时需要使用随机数,在此总结产生随机数的方法。计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数)。伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产生算法将可以产生一...
    99+
    2022-06-04
    shell 随机数
  • Linux Shell 生成随机数和随机字符串的方法示例
    日常生活中,会经常用到随机数,使用场景非常广泛,例如买彩票、丢骰子、抽签、年会抽奖等。 Shell 下如何生成随机数呢,米扑博客特意写了本文,总结 linux Shell 产生随机数的多种方法。 计算机产生的的只是“伪随...
    99+
    2022-06-04
    Linux Shell 生成随机数 Linux Shell 随机字符串
  • Android生成随机数的方法实例
    本文实例为大家分享了Android生成随机数的具体代码,供大家参考,具体内容如下 java文件 package com.example.my_xm_bw_luowei; imp...
    99+
    2022-11-11
  • java随机数生成的方法
    本文小编为大家详细介绍“java随机数生成的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“java随机数生成的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。本教程操作环境:windows7系统、java...
    99+
    2023-06-30
  • numpy生成随机数的方法
    numpy生成随机数的方法有:1、numpy.random.rand();2、numpy.random.randn();3、numpy.random.randint();4、numpy.random.random();5、numpy.ran...
    99+
    2023-11-21
    numpy
  • Qt生成随机数的方法
    目录1.生成随机数2.生成不重复的随机数3.生成递增的随机数1.生成随机数         生成随机数主要用到了函数qsrand和qrand,这两个函数在#include <Q...
    99+
    2022-11-12
  • Pytorch随机数生成常用的4种方法汇总
    目录一、torch.rand():构造均匀分布张量的方法二、torch.randn():构造标准正态分布张量的方法三、torch.randint():构造区间分布张量的方法四、tor...
    99+
    2023-05-20
    python随机数生成 python生成随机 pyhon随机生成数字
  • go语言生成随机数和随机字符串的实现方法
    目录生成随机数生成随机字符串生成随机数 随机数的生成是计算机科学的一个研究领域,同时也是一种艺术。这是因为计算机是纯粹的逻辑机器,所以使用计算机生成随机数异常困难! 你可以用...
    99+
    2022-06-07
    GO 方法 字符串 go语言 随机数 字符
  • R语言生成随机数的方法
    这篇文章主要介绍R语言生成随机数的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.概述作为一种语言进行统计分析,R有一个随机数生成各种统计分布功能的综合性图书馆。R语言可以针对不同的分布,生成该分布下的随机数。...
    99+
    2023-06-14
  • Python中生成随机数据的方法
    这篇文章主要讲解了“Python中生成随机数据的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中生成随机数据的方法”吧!随机性有多随机大多数用 Python 生成的随机数据在...
    99+
    2023-06-30
  • java生成随机数的三种方法
    随机数有三种生成方式:通过Math.random()方法通过System.currentTimeMillis()方法获取毫秒数通过Random类第一种:常用方法Math.random()方法,是获取0-1之间的double类型的小数,在通过...
    99+
    2014-08-11
    java入门 java 随机数
  • 利用Java实现生成随机数的方法有哪些
    利用Java实现生成随机数的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型...
    99+
    2023-05-31
    java 随机数生成 ava
  • Java编程实现从给定范围内随机N个不重复数生成随机数的方法小结
    本文实例讲述了Java编程实现从给定范围内随机N个不重复数生成随机数的方法。分享给大家供大家参考,具体如下:一、JAVA中生成随机数的方式在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以...
    99+
    2023-05-31
    java 随机数 ava
  • python生成随机数、随机字符、随机字符串的方法示例
    本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串: Windows 10 PyCharm 2018.3.5 for Windows ...
    99+
    2022-11-12
  • Qt生成随机数的方法是什么
    这篇文章主要介绍“Qt生成随机数的方法是什么”,在日常操作中,相信很多人在Qt生成随机数的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Qt生成随机数的方法是什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-21
  • JS生成随机数的方法有哪些
    JS生成随机数的方法有以下几种:1. Math.random():返回一个0到1之间的随机浮点数。```javascriptvar ...
    99+
    2023-09-12
    JS
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作