中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]随机数的另外一个问题
作者:
标题: [求助]随机数的另外一个问题 上一主题 | 下一主题
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『楼 主』:  [求助]随机数的另外一个问题

问题思路来自于:
http://www.cn-dos.net/forum/viewthread.php?tid=39925&fpage=1

1.bat
@echo off
:1
set/a n=%random%%%49+100
echo %n%
pause>nul
goto 1
然后打开CMD  for %a in (1 1) do start 1.bat

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

[ Last edited by pusofalse on 2008-6-2 at 01:42 AM ]



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-2 01:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
joyn
中级用户

丶杏灬丶


积分 280
发帖 105
注册 2008-5-6
来自 广西
状态 离线
『第 2 楼』:  

很奇怪~~

2008-6-2 01:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  

据说随机数是由时间为基数计算来的,若在start 1.bat&ping/n 10 127.1>nul 延时。
就不一样了。



致精致简!
2008-6-2 02:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 4 楼』:  

谢谢3楼



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-2 02:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 5 楼』:  

随机数在FOR循环里是无法改变的
@echo off
:1
for /l %%a in (1 1 10) do echo %random%
pause&cls&goto :1

@echo off
:1
for /l %%a in (1 1 10) do call :echo_
pause&cls&goto :1
:echo_
echo %random%


2008-6-2 10:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by moniuming at 2008-6-2 10:25:
随机数在FOR循环里是无法改变的
@echo off
:1
for /l %%a in (1 1 10) do echo %random%
pause&cls&goto :1

@echo off
:1
for /l %%a in (1 1 10) do call :echo ...

不是无法改变,而是方法错误
启用延迟变量

  Quote:
@echo off
:1
for /l %%a in (1 1 10) do call echo %%random%%
pause&cls&goto :1



   此帖被 +7 点积分        点击查看详情   
评分人:【 moniuming 分数: +7  时间:2008-6-2 10:49




2008-6-2 10:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 7 楼』:  

谢谢6楼!!!!!!!!!

2008-6-2 10:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
liyyhh
初级用户





积分 48
发帖 27
注册 2008-6-1
状态 离线
『第 8 楼』:  

路过,看不懂,下次再请教。

2008-6-2 13:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 9 楼』:  

6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-2 14:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by pusofalse at 2008-6-2 14:13:
6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数

何为“随机数”,就是随机生成的数字,set/?说明了:%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
对于获取随机数,如果不加存储和判断,随机数肯定会出现相同的数,而且随机数的次数会受到设定条件的限制。



2008-6-2 15:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: