标题: [求助]随机数的另外一个问题
[打印本页]
作者: pusofalse
时间: 2008-6-2 01:34
标题: [求助]随机数的另外一个问题
问题思路来自于:
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 ]
作者: joyn
时间: 2008-6-2 01:42
很奇怪~~
作者: 26933062
时间: 2008-6-2 02:06
据说随机数是由时间为基数计算来的,若在start 1.bat&ping/n 10 127.1>nul 延时。
就不一样了。
作者: pusofalse
时间: 2008-6-2 02:26
谢谢3楼
作者: moniuming
时间: 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_
pause&cls&goto :1
:echo_
echo %random%
作者: zh159
时间: 2008-6-2 10:30
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 |
|
作者: moniuming
时间: 2008-6-2 10:49
谢谢6楼!!!!!!!!!
作者: liyyhh
时间: 2008-6-2 13:35
路过,看不懂,下次再请教。
作者: pusofalse
时间: 2008-6-2 14:13
6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数
作者: zh159
时间: 2008-6-2 15:50
Quote: |
Originally posted by pusofalse at 2008-6-2 14:13:
6楼的方法总会有重复的。。。可能10次没有一次 但100次,1000次,循环多了的话就有那个一两个重复数 |
|
何为“随机数”,就是随机生成的数字,
set/?说明了:%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
对于获取随机数,如果不加存储和判断,随机数肯定会出现相同的数,而且随机数的次数会受到设定条件的限制。