中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 10:42
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » random的取值问题
可打印版本  1,060 / 12
第1楼 jy02141405 发表于 2008-04-29 18:49
初级用户 发帖 34 积分 97
random的取值问题
@echo off
set /a he=%random%%%149
echo %he%
pause
我想取148之内的随即数,但是发现取的值是递增的,比如第一次是3,第2次是7,第3次是12这样.我想要的效果是第一次可能是100,第2次是3这样.真正的随即抽取.
还请高手指点
还有个问题就是:%random%%%149+100
因该是取100-148之间的随即数.但是我一直点下去,他可以点到200以上,实在不解,难道是什么地方写错了吗

[ Last edited by jy02141405 on 2008-4-29 at 06:59 PM ]
第2楼 huahua0919 发表于 2008-04-29 19:23
银牌会员 发帖 780 积分 1,608
这样试试
第3楼 cmdbat 发表于 2008-04-29 19:46
新手上路 发帖 2 积分 3
还有个问题就是:%random%%%149+100
这是取100至248之间的数。
第一个问题不存在,你多试几次就知道了。
第4楼 jy02141405 发表于 2008-04-29 20:13
初级用户 发帖 34 积分 97
谢谢,目的是达到了.但是奇怪的是,为什么不循环调用,只是一次一次的打开,他的初始值会递增呢?还请帮忙解答下
第5楼 plp626 发表于 2008-04-29 21:06
银牌会员 发帖 1,020 积分 2,278
这是个让我好奇的现象,正在思考。。。
第6楼 qdloverr 发表于 2008-04-29 23:01
初级用户 发帖 33 积分 97
那如果想取149到50之间的呢?
第7楼 moniuming 发表于 2008-04-29 23:30
银牌会员 发帖 574 积分 1,335 来自 广西
Originally posted by jy02141405 at 2008-4-29 20:13:
谢谢,目的是达到了.但是奇怪的是,为什么不循环调用,只是一次一次的打开,他的初始值会递增呢?还请帮忙解答下

我做了一下试验,发现是和时间有关系的,在我的机子上大概是一秒钟递增三个数
第8楼 plp626 发表于 2008-04-30 12:01
银牌会员 发帖 1,020 积分 2,278
转,来自搜索:

计算机做不到真正的随机,所有的计算机随机都是“伪随机”,算法不同而已,绝大部分都是用时间作随机种子

(1)单次操作完毕后,单片机的计数器一直不停地计数,在外界对它进行再次操作或者要发送数据时停止计数。因为外界的操作或发送的时间是不定的,所以计数寄存器里面的数是随机的。

(2)可以对按键或操作时间进行计时。用户每次按键或操作的时间都是不定的,并且按键从抖动到稳定的时间也是不定的,对它进行计时,如果把间隔的时间取得合适,即可得到近似随机数。
第9楼 zh159 发表于 2008-04-30 13:56
金牌会员 发帖 1,467 积分 3,687
可以用set /a he=(%random%+%random%)/2%%49+100获得100-148更为“随机”的数
第10楼 knoppix7 发表于 2008-04-30 20:03
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
如果愿意...直接从数学书后面把随机数表抄下来用..
第11楼 jy02141405 发表于 2008-05-01 21:57
初级用户 发帖 34 积分 97
学习,谢谢大家的帮忙
第12楼 263392934 发表于 2008-05-02 17:03
新手上路 发帖 2 积分 4
/a是什么意思啊?
第13楼 slore 发表于 2008-05-02 18:36
铂金会员 发帖 2,478 积分 5,212
set /?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023