资源描述:
《批处理命令随机数random的用法及实》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、批处理命令随机数random的用法及实例最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。 说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。0到100之间的数@echooffsetlocalenabledelayedexpansionset/ah1="%random%%%100"::除以100的余数echo%h1%pause产生一个255以内的数@echooffsetlocalenabledelayedexpansionset/ah1=%rando
2、m%%%255+1echo%h1%pause_______________________随机0-99的随机数@echooff:loopset/a"a=%random%%%100"echo%a%pausegotoloop---注:%random%变量指0到32726的随机数%random%%%100是指向100求模,意指用随机数%random%除以100,然后取余数,余数就只能为0-99之间了.批处理产生四个四位不重复的随机数@echooffsetlocalenabledelayedexpansionsetvar=123456789set/ah1=%random
3、%%%9+1setvar=!var:%h1%=0!for/l%%iin(9,-1,7)do(set/atemp=!random!%%%%icallseth%%i=%%var:~!temp!,1%%callsetvar=%%var:!h%%i!=%%)echo%h1%%h9%%h8%%h7%pause批处理产生四个四位不重复的随机数@echooffsetlocalenabledelayedexpansionset/astr=123456789for/l%%iin(1110)do(set/anum=!random!%%9+1callsetstr=%%str:!num
4、!=%%!num!)echo!str:~2,4!Pause@echooff&setlocalenabledelayedexpansion::生成四位的随机数100个for/l%%iin(1,1,100)do(set/a#%%i=!random!%%9000+1000)::过滤掉有重复数字的随机数for/l%%iin(0,1,100)do(for/l%%jin(0,1,9)do(setss=!#%%i:%%j=!if!ss!lss100(set"#%%i=")))for/f"tokens=2delims=#="%%iin('set#')doecho%%ipause
5、 一、random的取值范围 要使用random,必须将其当作一个变量来使用,这样才能得到值。 打开MS-DOS窗口,输入如下代码,即可获得值。 echo%random% %random%可以产生0到65535之间的随机数。 二、通过获得一定范围内的随机数 通过一,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得到一定范围内的随机数呢? 通用的算法公式如下: 通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,注:批处理中求模得用两个%%符号。 比如,我们想获得4到
6、12之间的随机数,就可以这样来使用,代码如下: @REM产生10个[4,12]间的随机数 @echooff REM启用延迟环境变量扩展 setlocalenabledelayedexpansion REM设置随机数的最小和最大值以及求模用的变量 setmin=4 setmax=12 set/amod=!max!-!min!+1 for/l%%iin(1,1,10)do( REM产生[min,max]之间的随机数 set/ar=!random!%%!mod!+!min! echo. echo随机数%%i:!r! ) 三、其它实例 实
7、例①:常用功能 生成1到100之间的随机数 set/aRandomNumber=%random%%%100+1 ::100是范围数,1是底数即开始的数.(在bat中使用),在CMD中会出错. ::取随机两位数 set/ad=%random:~0,2% echo%d% ::避免00 set/ae=1%random:~0,2%-100 echo%e%@echooff :loop set/aRandomNumber=1%random:~-1%%random:~-1%-99 ::最大值100 if%RandomNumber%LSS35got
8、oloop ::小于3