当前位置:   article > 正文

【批处理DOS-CMD命令-汇总和小结】-利用cmd命令生成随机数、生成指定范围的随机数_dos 随机数

dos 随机数

零、转载链接

bat脚本的基本命令语法 - 整合侠 - 博客园

一、cmd命令的随机数取值范围

%RANDOM% 系统变量只能返回 0 到 32767 之间的任意十进制数字。2的15次方等于32768,上面的0~32767实际就是15位二进制数的范围。

因此,利用cmd命令,生成的最大随机数就是32767,最小随机数就是-32767。

但我们一般不会在学习阶段去测试生成负的随机数,因为学会如何生成正随机数了,负随机数在正随机数的基础上加一个负号就能解决啦。

二、生成0-100以内的随机数

那么,如何获取100以内的随机数呢?

很简单,将%RANDOM%按100进行求余运算即可,见例子。
例:生成5个100以内的随机数

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /L %%i in (1 1 5) do (
  4. set /a randomNum=!random!%%100
  5. echo 随机数:!randomNum!
  6. )
  7. pause

三、生成n-m之内的随机数

 

求余数运算set /a randomNum=!random!%%100中的100可以是1~32768之间的任意整数。
总结:利用系统变量%random%,求余数运算%%,字符串处理等,可以实现很多随机处理。

通过上面的学习,我们知道,%random%可以产生0到32767之间的随机数,但是,如何才能得到一定范围内的随机数呢? 
我们可以使用通用的算法公式如下: 
通用的公式%random%%%(max-min+1)+min来产生[min,max]区间里的随机数,
注:批处理中求模得用两个%%符号。 
比如,我们想获得4到12之间的随机数,就可以这样来使用,代码如下:

  1. @REM 产生10个[4,12]间的随机数
  2. @echo off
  3. REM 启用延迟环境变量扩展
  4. setlocal enabledelayedexpansion
  5. REM 设置随机数的最小和最大值以及求模用的变量
  6. set min=4
  7. set max=12
  8. set /a mod=!max!-!min!+1
  9. for /l %%i in (1,1,10) do (
  10. REM 产生[min,max]之间的随机数
  11. set /a r=!random!%%!mod!+!min!
  12. echo.
  13. echo 随机数%%i:!r!)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/358980
推荐阅读
相关标签
  

闽ICP备14008679号