沈阳电脑维修网,沈阳上门维修电脑服务
当前位置: 主页 > 程序数据代码>$RANDOM: 产生随机整数_程序数据_shell >

$RANDOM: 产生随机整数_程序数据_shell

时间:2011-12-5来源:沈阳电脑维修网 作者: 吕先生:13889116605点击:
沈阳电脑维修,上门维修电脑
      $RANDOM是Bash的一个返回伪随机整数(范围为0-32767)的内部函数(而不是一个常量或变量),它不应该用于产生加密的密钥.例1.产生随机整数  1#!/bin/bash  2  3#每次调用$RANDOM都会返回不同的随机整数.  4#范围为:0-32767(带符号的16位整数).  5  6MAXCOUNT=10  7count=1  8  9echo 10echo"$MAXCOUNTrandomnumbers:" 11echo"-----------------" 12while["$count"-le$MAXCOUNT]     #产生10($MAXCOUNT)个随机整数. 13do 14  number=$RANDOM 15  echo$number 16  let"count+=1" #增加计数. 17done 18echo"-----------------" 19 20#如果你需要某个范围的随机整数,可以使用取模操作符.(译者注:事实上,这不是一个非常好的办法。理由请见man3rand) 21#取模操作会返回除法的余数. 22 23RANGE=500 24 25echo 26 27number=$RANDOM 28let"number%=$RANGE" 29#          ^^ 30echo"Randomnumberlessthan$RANGE --- $number" 31 32echo 33 34 35 36# 如果你需要一个大于某个下限的随机整数, 37#+应该增加测试以便抛弃所有小于此下限值的数值. 38 39FLOOR=200 40 41number=0  #初始化 42while["$number"-le$FLOOR] 43do 44  number=$RANDOM 45done 46echo"Randomnumbergreaterthan$FLOOR--- $number" 47echo 48 49   #让我们检测另外一个完成上面循环作用的简单办法,即 50   #      let"number=$RANDOM+$FLOOR" 51   #这能避免了while循环,并且运行得更快。 52   #但,使用这个技术可能会产生问题,思考一下是什么问题? 53 54 55 56#联合上面两个技巧重新产生在两个限制值之间的随机整数. 57number=0  #初始化 58while["$number"-le$FLOOR] 59do 60  number=$RANDOM 61  let"number%=$RANGE" #Scales$numberdownwithin$RANGE. 62done 63echo"Randomnumberbetween$FLOORand$RANGE--- $number" 64echo 65 66 67 68#产生二元值,即"真"或"假". 69BINARY=2 70T=1 71number=$RANDOM 72 73let"number%=$BINARY" 74# 注意   let"number>>=14"   会产生更平均的随机分布  #(译者注:正如在man手册里提到的,更高位的随机分布更平均, 75#+(除了最后的二元值右移出所有的值).                      #取模操作使用低位来产生随机会相对不平均) 76if["$number"-eq$T] 77then 78  echo"TRUE" 79else 80  echo"FALSE" 81fi  82 83echo 84 85 86#模拟掷骰子. 87SPOTS=6  #模除6会产生0-5之间的值. 88          #结果增1会产生1-6之间的值. 89          #多谢PauloMarcelCoelhoAragao的简化. 90die1=0 91die2=0 92#这会比仅设置SPOTS=7且不增1好?为什么会好?为什么会不好? 93 94#单独地掷每个骰子,然后计算出正确的机率. 95 96    let"die1=$RANDOM%$SPOTS+1"#掷第一个. 97    let"die2=$RANDOM%$SPOTS+1"#掷第二个. 98    # 上面的算术式中,哪个操作符优先计算-- 99    #+取模(%)还是加法(+)? 100 101 102let
上一篇:双括号结构_程序数据_shell
下一篇:linux系统与管理命令信息与统计类_程序数据_shell
查看[$RANDOM: 产生随机整数_程序数据_shell ]所有评论
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:
推荐内容
关于我们 服务价格 联系我们 企业网站优化 沈阳网站建设 沈阳维修电脑