国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > BAT > 正文

bat下產生指定范圍隨機數字的實現方法

2020-07-26 20:17:59
字體:
來源:轉載
供稿:網友

最近研究批處理命令,偶然發現,居然還有隨機數,在此之前,是未敢想過。
說到隨機數,不同的軟件都有隨機函數的功能,使用方法大體類似,但卻有著區別。
本文,給您介紹一下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%!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涿鹿县| 邢台县| 五大连池市| 阳山县| 墨脱县| 巩留县| 清水河县| 遂川县| 伽师县| 冷水江市| 永年县| 兰州市| 镇江市| 政和县| 新化县| 富平县| 同江市| 旌德县| 克拉玛依市| 手机| 新乡市| 天峻县| 屯门区| 临澧县| 闵行区| 长沙市| 永靖县| 丰县| 衡南县| 深州市| 大田县| 海门市| 承德县| 交口县| 肥东县| 牡丹江市| 镇江市| 白玉县| 乐陵市| 彭泽县| 赤壁市|