中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 16:13
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]关于random
可打印版本  765 / 4
第1楼 pusofalse 发表于 2008-05-21 18:11
银牌会员 发帖 646 积分 1,604
[求助]关于random
在一个批处理中,开启变量延迟的情况下random扩展出两次相同结果的几率有多少~?
在批处理之家看到这样一题,新建一百个名字中不含5的文件夹
for /l %%a in (1 1 100) do call md %%random:5=%%

这样一条语句,难道能确保random绝对不会有两次相同的值吗?~
第2楼 bat-zw 发表于 2008-05-21 18:14
金牌会员 发帖 1,276 积分 3,105
for /l %%a in (1 1 100) do call md %%random:5=%%
我认为不行,绝对有重复情况出现
第3楼 26933062 发表于 2008-05-21 18:18
银牌会员 发帖 879 积分 2,268
所以此答案绝不是正解。
51234 12345 15234 12543 12534 。。。。。。
太多了,结果都是重复的。
第4楼 pusofalse 发表于 2008-05-21 18:23
银牌会员 发帖 646 积分 1,604
再次试验了一下。。
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=%%
这条语句。。。每次都有一两次的重复结果~

请教下,这个问题能说明什么~?
第5楼 zh159 发表于 2008-05-21 20:25
金牌会员 发帖 1,467 积分 3,687
如果不加入判断获取,绝对有重复情况出现




PS:以前讨论过每次连续运行BAT时random会出现小步幅递增的问题,试了一下:

改为如下后这种情况就会大大减轻
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023