资源描述:
《批处理命令随机数random的用法及实》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方批处理命令随机数random的用法及实例最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。 说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。0到100之间的数@echooffsetlocalenabledelayedexpansionset/ah1="%random%%%100"::除以100的余数ec
2、ho%h1%pause产生一个255以内的数@echooffsetlocalenabledelayedexpansionset/ah1=%random%%%255+1echo%h1%pause_______________________随机0-99的随机数@echooff:loopset/a"a=%random%%%100"echo%a%pausegotoloop---注:%random%变量指0到32726的随机数%random%%%100是指向100求模,意指用随机数%random%除以100,然后取余数,余数就只能为
3、0-99之间了.批处理产生四个四位不重复的随机数@echooffsetlocalenabledelayedexpansionsetvar=123456789set/ah1=%random%%%9+1----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方setvar=!var:%h1%=0!for/l%%iin(9,-1,7)do(set/atemp=!rando
4、m!%%%%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!=%%!num!)echo!str:~2,4!Pause@echooff&setlo
5、calenabledelayedexpansion::生成四位的随机数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 一、random的取值范围 要使用rand
6、om,必须将其当作一个变量来使用,这样才能得到值。 打开MS-DOS窗口,输入如下代码,即可获得值。 echo%random%----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方 %random%可以产生0到65535之间的随机数。 二、通过获得一定范围内的随机数 通过一,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得
7、到一定范围内的随机数呢? 通用的算法公式如下: 通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,注:批处理中求模得用两个%%符号。 比如,我们想获得4到12之间的随机数,就可以这样来使用,代码如下: @REM产生10个[4,12]间的随机数 @echooff REM启用延迟环境变量扩展 setlocalenabledelayedexpansion REM设置随机数的最小和最大值以及求模用的变量 setmin=4 setmax=12 set/amod=!
8、max!-!min!+1 for/l%%iin(1,1,10)do( REM产生[min,max]之间的随机数 set/ar=!random!%%!mod!+!min! echo. echo随机数%%i:!r! ) 三、其它实例 实例①:常用功能 生成1到100之间的