我正在制作有股票的游戏,我希望它们能够消极,我知道如何限制正的随机数,但我如何得到%random%
负值?并且,使%random%
生成负数甚至可能吗?
答案 0 :(得分:3)
只需从0中减去随机数。
set /a negative_random=0-%random%
答案 1 :(得分:2)
这取决于您想要的范围。如果[-16384,16383]足够你,请使用此
set /a num=%random%-16384
否则,如果您需要[a,b]范围内的随机值,请使用此
set /a num=%random% %%(b-a+1) + a
例如,要获取-10到20之间的值,请使用此
set /a num=%random% %%31 - 10
答案 2 :(得分:2)
要生成minrand
到maxrand
范围内的随机数,请使用
SET /a selection=%RANDOM% %% (%maxrand% - %minrand% + 1) + %minrand%
以下是一个采样器:更改分配给minrand
和maxrand
的值以进行测试:
@ECHO OFF
SETLOCAL
SET /a minrand=-3
SET /a maxrand=3
FOR /l %%a IN (1,1,20) DO CALL :genshow
GOTO :eof
:genshow
SET /a selection=%RANDOM% %% (%maxrand% - %minrand% + 1) + %minrand%
ECHO %selection%
GOTO :EOF