Board logo

标题: random的取值问题 [打印本页]

作者: jy02141405     时间: 2008-4-29 18:49    标题: 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 ]

作者: huahua0919     时间: 2008-4-29 19:23
这样试试
@echo off
:lp
set /a he=%random%%%149
echo %he%
pause &goto :lp

作者: cmdbat     时间: 2008-4-29 19:46
还有个问题就是:%random%%%149+100 这是取100至248之间的数。 第一个问题不存在,你多试几次就知道了。

作者: jy02141405     时间: 2008-4-29 20:13
谢谢,目的是达到了.但是奇怪的是,为什么不循环调用,只是一次一次的打开,他的初始值会递增呢?还请帮忙解答下

作者: plp626     时间: 2008-4-29 21:06
这是个让我好奇的现象,正在思考。。。

作者: qdloverr     时间: 2008-4-29 23:01
那如果想取149到50之间的呢?

作者: moniuming     时间: 2008-4-29 23:30
Originally posted by jy02141405 at 2008-4-29 20:13: 谢谢,目的是达到了.但是奇怪的是,为什么不循环调用,只是一次一次的打开,他的初始值会递增呢?还请帮忙解答下
我做了一下试验,发现是和时间有关系的,在我的机子上大概是一秒钟递增三个数

作者: plp626     时间: 2008-4-30 12:01
转,来自搜索:
计算机做不到真正的随机,所有的计算机随机都是“伪随机”,算法不同而已,绝大部分都是用时间作随机种子
(1)单次操作完毕后,单片机的计数器一直不停地计数,在外界对它进行再次操作或者要发送数据时停止计数。因为外界的操作或发送的时间是不定的,所以计数寄存器里面的数是随机的。 (2)可以对按键或操作时间进行计时。用户每次按键或操作的时间都是不定的,并且按键从抖动到稳定的时间也是不定的,对它进行计时,如果把间隔的时间取得合适,即可得到近似随机数。

作者: zh159     时间: 2008-4-30 13:56
可以用set /a he=(%random%+%random%)/2%%49+100获得100-148更为“随机”的数

作者: knoppix7     时间: 2008-4-30 20:03
如果愿意...直接从数学书后面把随机数表抄下来用..

作者: jy02141405     时间: 2008-5-1 21:57
学习,谢谢大家的帮忙

作者: 263392934     时间: 2008-5-2 17:03
/a是什么意思啊?

作者: slore     时间: 2008-5-2 18:36
set /?