编程实现让计算机生成指定范围内的随机数,bat下产生指定范围随机数字的实现方法...

最近研究批处理命令,偶然发现,居然还有随机数,在此之前,是未敢想过。

说到随机数,不同的软件都有随机函数的功能,使用方法大体类似,但却有着区别。

本文,给您介绍一下MS-DOS中的批处理命令random的用法及实例。

一、random的取值范围

要使用random,必须将其当作一个变量来使用,这样才能得到值。

打开MS-DOS窗口,输入如下代码,即可获得值。

echo %random%

%random%可以产生0到65535之间的随机数。

二、通过获得一定范围内的随机数  通过一,我们知道,%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!

)

三、其它实例  实例①:常用功能

生成1到100之间的随机数

set /a RandomNumber=%random%%%100+1

::100是范围数,1是底数即开始的数.(在bat 中使用),在CMD中会出错.

::取随机两位数

set /a d=%random:~0,2%

echo %d%

::避免00

set /a e=1%random:~0,2%-100

echo %e% @echo off

:loop

set /a RandomNumber=1%random:~-1%%random:~-1%-99

::最大值100

if %RandomNumber% LSS 35 goto loop

::小于35返回

if %RandomNumber% GTR 75 goto loop

::大于75返回

echo %RandomNumber%

if "%RandomNumber%" == "50" pause

goto loop

实例②:随机获取文件名

@echo off

if "%1" NEQ "$" (

for /f "tokens=1,2 delims=:" %%a in ('"%~0" $^|sort') do @echo %%b

) else for /f "delims=" %%i in ('dir /b /a-d *.mp3') do @call :sub %%i

goto :EOF:sub

echo %random%:%*

goto :EOF

实例③:在一个文本中随机取一行数据

@ECHO %DBG% OFF

SETLOCAL ENABLEDELAYEDEXPANSION

FOR /F "TOKENS=*" %%i IN (TEST.TXT) DO (SET /A h+=1 & SET r!h!=%%i)

SET /A s=%RANDOM%%%%h%+1

ECHO !r%s%!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值