批處理、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 *.***') 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%!
bat中生成隨機數
批處理 bat 產生指定範圍隨機數字的 需要的朋友可以參考下下 最近研究批處理命令,偶然發現,居然還有隨機數,在此之前,是未敢想過。說到隨機數,不同的軟體都有隨機函式的功能,使用方法大體類似,但卻有著區別。本文,給您介紹一下ms dos中的批處理命令random的用法及例項。一 random的取值範...
ios 中生成隨機數
ios 有如下三種隨機數方法 1.srand unsigned time 0 不加這句每次產生的隨機數不變 int i rand 5 2.srandom time 0 int i random 5 3.int i arc4random 5 注 rand 和random 實際並不是乙個真正的偽隨機數發...
ios 中生成隨機數
ios 有如下三種隨機數方法 1.srand unsigned time 0 不加這句每次產生的隨機數不變 int i rand 5 2.srandom time 0 int i random 5 3.int i arc4random 5 注 rand 和random 實際並不是乙個真正的偽隨機數發...