shell生成随机数的几种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell生成随机数的几种方法相关的知识,希望对你有一定的参考价值。

参考技术A (1)通过内部系统变量($RANDOM)
#!/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)使用awk的随机函数
awk 'BEGINsrand();print rand()*1000000' #可以加上if判断,779644
(3)openssl rand产生随机数
openssl rand 用于产生指定长度个bytes的随机字符。-base64或-hex对随机字符串进行base64编码或用hex格式显示。
openssl rand -base64 8 | md5sum | cut -c1-8 #八位字母和数字的组合,3a61800e

openssl rand -base64 8 | cksum | cut -c1-8 #八位数字,10784736

(4)通过时间获得随机数(date)
date +%s%N #生成19位数字,1287764807051101270
date +%s%N | cut -c6-13 #取八位数字,21793709
date +%s%N | md5sum | head -c 8 #八位字母和数字的组合,87022fda

C# 取指定范围随机数的几种方法

在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等。

  在 C# 中,一般都用 Random 产生随机数,它可任意指定产生随机数范围。Random 结合数组,可以产生一些特殊范围的随机数,以满足特殊的需要。

 

  一、用 Random 产生指定范围随机数

  1、产生指定上限的随机数(如产生100以内的随机数)

  Random ran = new Random();

  int n = ran.Next(100);

 

  2、产生指定上下限的随机数(如产生100到1000的随机数)

  Random ran = new Random();

  int n = ran.Next(100, 1000);

 

  二、用 Random 结合数组产生指定范围随机数

  在某些情况下,随机数只能取一些特殊指定的值,如不连续的数字或指定的一些单词等,此时仅用 Random 无法达到要求,必须借住数组才能实现。实现思路大概是这样:先把这些特殊的值存到数组中,然后把数组的长度作为 Random 的上限产生随机数,此随机数正是数组的下标,根据该下标取得数组的值。

  1、示例一

  假如要产生不连续的随机数,代码如下:

  public string GetRandom(string[] arr)
  {
    Random ran = new Random();
    int n = ran.Next(arr.Length - 1);

    return arr[n];
  }

  调用方法:

  string[] arr = { "25", "28", "30", "50", "60" };
  GetRandom(arr);

 

  2、示例二

  假如要用指定单词作为随机数的取值,代码实现跟示例一相同,所不同的仅是随机数的取值,所以只要定义一个单词数组直接调用上面代码即可。

  调用方法:

  string[] arr = { "red", "green", "blue", "orange", "white" };
  GetRandom(arr);

  以上两种产生指定随机数的方法,都通过测试,可根据实际开发需要灵活选择,一般情况都是直接用 Random 就可以了。

以上是关于shell生成随机数的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP生成不重复随机数的几种方法

PHP生成随机数的几种方法

用python生成随机数的几种方法

unix下生成随机复杂密码的几种方法

java获取随机数的几种方法

C# 取指定范围随机数的几种方法