五个0-9的数字,可能出现任意相同数字,分别放入A,B,C,D,E变量中
每次最少选取三个变量将变量中的数字+1
目标是让五个变量中的数字全部不相同


每次最少选取三个变量将变量中的数字+1
目标是让五个变量中的数字全部不相同


联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!


@echo off
setlocal enabledelayedexpansion
:begin
set ac=0
:again
type nul>"%temp%\temp1.txt"
type nul>"%temp%\temp2.txt"
set aa=0
set/a ac+=1
:aaa
set/a ab=%random%%%10
for %%a in (!ab!) do (
set/a aa+=1
>>"%temp%\temp1.txt" echo %%a
if !aa!==5 goto aab
goto aaa
)
:aab
for /f "delims=" %%i in ('type "%temp%\temp1.txt"') do (
if not !%%i!==!ac! (
>>"%temp%\temp2.txt" echo %%i
set %%i=!ac!
)
)
for /f "delims=:" %%b in ('type "%temp%\temp2.txt"^|findstr /n .*') do set ad=%%b
if not !ad!==5 goto again
for /f "delims=" %%d in ('type "%temp%\temp2.txt"') do (
echo %%d
)
pause&cls
goto begin
@echo off
:begin
cls
::生成五个不同随机数
set/a n1=%random%%%10
:nn2
set/a n2=%random%%%10
if %n2%==%n1% goto :nn2
:nn3
set/a n3=%random%%%10
if %n3%==%n2% goto :nn3
if %n3%==%n1% goto :nn3
:nn4
set/a n4=%random%%%10
if %n4%==%n3% goto :nn4
if %n4%==%n2% goto :nn4
if %n4%==%n1% goto :nn4
:nn5
set/a n5=%random%%%10
if %n5%==%n4% goto :nn5
if %n5%==%n3% goto :nn5
if %n5%==%n2% goto :nn5
if %n5%==%n1% goto :nn5
set nn=%n1%%n2%%n3%%n4%%n5%
echo %nn%
pause
goto begin
@echo off
set var=0 1 2 3 4 5 6 7 8 9
if "%~1"=="" (
for /f "tokens=1,2 delims= " %%i in ('"%~0" n^|sort') do call set w=%%w%% %%j
) else (
for %%a in (%var%) do call echo %%random%% %%a
goto :eof
)
for /f "tokens=1-5" %%a in ("%w%") do echo %%a %%b %%c %%d %%e
pause
@echo off
set var=0 1 2 3 4 5 6 7 8 9
for /l %%a in (10 -1 6) do call :lis %%a
echo %str%
pause&exit
:lis
set /a w=%random%%%%~1+1
for /f "tokens=%w%" %%i in ("%var%") do (
call set var=%%var:%%i=%%
call set str=%%str%% %%i
)
goto :eof
@echo off
set /a a=%random%%%10
echo %a% >a.txt
:set1
set /a b=%random%%%10
find "%b%" a.txt >nul
if errorlevel 1 goto set2
goto set1
:set2
echo %b% >>a.txt
set /a c=%random%%%10
find "%c%" a.txt >nul
if errorlevel 1 goto set3
goto set2
:set3
echo %c% >>a.txt
set /a d=%random%%%10
find "%d%" a.txt >nul
if errorlevel 1 goto set4
goto set3
:set4
echo %d% >>a.txt
set /a e=%random%%%10
find "%e%" a.txt >nul
if errorlevel 1 goto show
goto set4
:show
del a.txt
echo %a%%b%%c%%d%%e%
:: 将获取的5个数选择其中的一些(至少选取3个,至多选取4个)加1,使他们互不相等
:: qzwqzw@cn-dos.net : 2008-03-19
@echo off & setlocal EnableDelayedExpansion
for /l %%i in (1 1 5) do (
set /a n=!random! %% 10
set =!n!
)
set /p=生成随机数列:<nul
for /l %%i in (1 1 5) do set/p= !!<nul
echo.
echo.
pause>nul
for /l %%i in (1 1 5) do (
for /l %%j in (%%i 1 5) do (
if not %%i==%%j (
set /a a=, b=
if !a! gtr !b! (
set =!b!
set =!a!
)
)
)
)
set /p=数列排序后为:<nul
for /l %%i in (1 1 5) do set/p= !!<nul
echo.
echo.
pause>nul
for /l %%i in (1 1 5) do (
if defined prev (
set /a a=
set /a b=
if !a! geq !b! (
set /a =a+1
set /a iAdd=a+1-b
set /a nAdd+=1
echo 第!nAdd!次:!b!+!iAdd!
)
)
set prev=%%i
)
set /p=数列差异化后:<nul
for /l %%i in (1 1 5) do set/p= !!<nul
echo.
echo.
pause>nul