作者:pusofalse | 时间:2008-05-21 18:11 | 标题:[求助]关于random
在一个批处理中,开启变量延迟的情况下random扩展出两次相同结果的几率有多少~?
在批处理之家看到这样一题,新建一百个名字中不含5的文件夹
for /l %%a in (1 1 100) do call md %%random:5=%%
这样一条语句,难道能确保random绝对不会有两次相同的值吗?~
作者:bat-zw | 时间:2008-05-21 18:14
for /l %%a in (1 1 100) do call md %%random:5=%%
我认为不行,绝对有重复情况出现
作者:26933062 | 时间:2008-05-21 18:18
所以此答案绝不是正解。
51234 12345 15234 12543 12534 。。。。。。
太多了,结果都是重复的。
作者:pusofalse | 时间:2008-05-21 18:23
再次试验了一下。。
setlocal enabledelayedexpansion
for /l %%a in (1 1 100) do md !random:5=!
试验10次,没有重复结果。。
for /l %%a in (1 1 100) do call md %%random:5=%%
这条语句。。。每次都有一两次的重复结果~
请教下,这个问题能说明什么~?
作者:zh159 | 时间:2008-05-21 20:25
如果不加入判断获取,绝对有重复情况出现
PS:以前讨论过每次连续运行BAT时random会出现小步幅递增的问题,试了一下:
@echo off
echo %random%
pause
改为如下后这种情况就会大大减轻
@echo off
rem %random%
echo %random%
pause