中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 22:52
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]随机数的另外一个问题
可打印版本  879 / 9
第1楼 pusofalse 发表于 2008-06-02 01:34
银牌会员 发帖 646 积分 1,604
[求助]随机数的另外一个问题
问题思路来自于:
http://www.cn-dos.net/forum/viewthread.php?tid=39925&fpage=1

1.bat



然后打开CMD for %a in (1 1) do start 1.bat

发现随机数都是一样的。。。 想不明白是怎么回事~ 请高手们指教~

[ Last edited by pusofalse on 2008-6-2 at 01:42 AM ]
第2楼 joyn 发表于 2008-06-02 01:42
中级用户 发帖 105 积分 280 来自 广西
很奇怪~~
第3楼 26933062 发表于 2008-06-02 02:06
银牌会员 发帖 879 积分 2,268
据说随机数是由时间为基数计算来的,若在start 1.bat&ping/n 10 127.1>nul 延时。
就不一样了。
第4楼 pusofalse 发表于 2008-06-02 02:26
银牌会员 发帖 646 积分 1,604
谢谢3楼
第5楼 moniuming 发表于 2008-06-02 10:25
银牌会员 发帖 574 积分 1,335 来自 广西
随机数在FOR循环里是无法改变的

第6楼 zh159 发表于 2008-06-02 10:30
金牌会员 发帖 1,467 积分 3,687
Originally posted by moniuming at 2008-6-2 10:25:
随机数在FOR循环里是无法改变的


不是无法改变,而是方法错误
启用延迟变量
@echo off
:1
for /l %%a in (1 1 10) do call echo %%random%%
pause&cls&goto :1
第7楼 moniuming 发表于 2008-06-02 10:49
银牌会员 发帖 574 积分 1,335 来自 广西
谢谢6楼!!!!!!!!!
第8楼 liyyhh 发表于 2008-06-02 13:35
初级用户 发帖 27 积分 48
路过,看不懂,下次再请教。
第9楼 pusofalse 发表于 2008-06-02 14:13
银牌会员 发帖 646 积分 1,604
6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数
第10楼 zh159 发表于 2008-06-02 15:50
金牌会员 发帖 1,467 积分 3,687
Originally posted by pusofalse at 2008-6-2 14:13:
6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数

何为“随机数”,就是随机生成的数字,set/?说明了:%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
对于获取随机数,如果不加存储和判断,随机数肯定会出现相同的数,而且随机数的次数会受到设定条件的限制。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023