博客园  :: 首页  :: 管理

关于bat中随机数的生成方法

Posted on 2020-09-26 12:39  520_1351  阅读(8683)  评论(0编辑  收藏  举报

在bat/cmd中我们可以使用其内置的变量%random%生成随机数字,范围为[0,65535]

 

1、,直接使用echo %random%的方式就可以生成了:

C:\Users\QQ5201351\Desktop>echo %random%
520

C:\Users\QQ5201351\Desktop>echo %random%
1351

 

2、如果需要生成指定范围内的随机数,如[min,max],可以采取一种思想,求模(余数)的思想,

    第一步:用max-min+1   如结果为x

    第二步:生成一个0~65535的随机数,结果为y

    第三步:用y除以x,取余数,那么余数最小为0,最大为上面提到的  (max-min)

    第四步:用求得余数+min,那么,最小的结果就是0+min,最大的结果就是max-min+max

++++++++++++++上面的解释可能有点绕,可能一下不能很好的理解,举以一个实例

 

3、生成一个[520,1351]范围内的随机数

@echo off 
setlocal enabledelayedexpansion
set min=520
set max=1351
set /a mod=!max!-!min!+1

set /a rand_num=!random!%%!mod!+!min! & echo !rand_num!

 

4、如果要生成指定个数的随机数、我们可以在上面的基础上结合for语句实现,如生成6个1到100之间(包括1和100)的随机数:

@echo off 
setlocal enabledelayedexpansion
set min=1
set max=100
set /a mod=!max!-!min!+1

for /l %%i in (1,1,6) do (set /a rand_num=!random!%%!mod!+!min! & echo !rand_num!)

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13734617.html