如何使%random%显示阴性结果?

时间:2015-07-02 02:47:00

标签: batch-file random

我正在制作有股票的游戏,我希望它们能够消极,我知道如何限制正的随机数,但我如何得到%random%负值?并且,使%random%生成负数甚至可能吗?

3 个答案:

答案 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)

要生成minrandmaxrand范围内的随机数,请使用

SET /a selection=%RANDOM% %% (%maxrand% - %minrand% + 1) + %minrand%

以下是一个采样器:更改分配给minrandmaxrand的值以进行测试:

@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