赞
踩
%RANDOM% 系统变量只能返回 0 到 32767 之间的任意十进制数字。2的15次方等于32768,上面的0~32767实际就是15位二进制数的范围。
因此,利用cmd命令,生成的最大随机数就是32767,最小随机数就是-32767。
但我们一般不会在学习阶段去测试生成负的随机数,因为学会如何生成正随机数了,负随机数在正随机数的基础上加一个负号就能解决啦。
那么,如何获取100以内的随机数呢?
很简单,将%RANDOM%按100进行求余运算即可,见例子。
例:生成5个100以内的随机数
- @echo off
- setlocal enabledelayedexpansion
- for /L %%i in (1 1 5) do (
- set /a randomNum=!random!%%100
- echo 随机数:!randomNum!
- )
- pause
求余数运算set /a randomNum=!random!%%100中的100可以是1~32768之间的任意整数。
总结:利用系统变量%random%,求余数运算%%,字符串处理等,可以实现很多随机处理。
通过上面的学习,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得到一定范围内的随机数呢?
我们可以使用通用的算法公式如下:
通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,
注:批处理中求模得用两个%%符号。
比如,我们想获得4到12之间的随机数,就可以这样来使用,代码如下:
- @REM 产生10个[4,12]间的随机数
- @echo off
- REM 启用延迟环境变量扩展
- setlocal enabledelayedexpansion
- REM 设置随机数的最小和最大值以及求模用的变量
- set min=4
- set max=12
- set /a mod=!max!-!min!+1
-
- for /l %%i in (1,1,10) do (
- REM 产生[min,max]之间的随机数
- set /a r=!random!%%!mod!+!min!
- echo.
- echo 随机数%%i:!r!)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。