Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何使%random%显示为负结果?_Batch File_Random - Fatal编程技术网

Batch file 如何使%random%显示为负结果?

Batch file 如何使%random%显示为负结果?,batch-file,random,Batch File,Random,我在做一个有股票的游戏,我希望它们能够变成负值,我知道如何限制正随机数,但是我如何让%random%产生负值?而且,使%random%生成负数是可能的吗?只需从0中减去随机数即可 set /a negative_random=0-%random% 这取决于你想要的范围。如果[-16384,16383]对您来说足够了,请使用此选项 set /a num=%random%-16384 set /a num=%random% %%31 - 10 否则,如果需要[a,b]范围内的随机值,则使用此

我在做一个有股票的游戏,我希望它们能够变成负值,我知道如何限制正随机数,但是我如何让
%random%
产生负值?而且,使
%random%
生成负数是可能的吗?

只需从0中减去随机数即可

set /a negative_random=0-%random%

这取决于你想要的范围。如果[-16384,16383]对您来说足够了,请使用此选项

set /a num=%random%-16384
set /a num=%random% %%31 - 10
否则,如果需要[a,b]范围内的随机值,则使用此

set /a num=%random% %%(b-a+1) + a
例如,要获得从-10到20的值,请使用

set /a num=%random%-16384
set /a num=%random% %%31 - 10

要在
minrand
maxrand
范围内生成随机数,请使用

SET /a selection=%RANDOM% %% (%maxrand% - %minrand% + 1) + %minrand%
这是一个采样器:更改分配给
minrand
maxrand
的值以测试:

@ECHO关闭
SETLOCAL
SET/a minrand=-3
设置/a最大值=3
对于(1,1,20)中的/l%%a,请拨打电话:genshow
后藤:eof
:genshow
设置/a选择=%RANDOM%%(%maxrand%-%minrand%+1)+%minrand%
回显百分比选择%
后藤:EOF

设置数值=-%random%
?从
set/?
帮助:“%RANDOM%生成一个介于0和32767之间的随机十进制数”好的,这可以工作,并且可以通过执行此操作来调整范围:
set/a NUM=0-%RANDOM%%%number-1
但它可以包含正数吗?只要
negative\u RANDOM=-%RANDOM%%
就足够了,因为set表达式中存在一元负数。。。或者将其乘以-1:
set/A negRan=-1*%random%
,或者取其2的补码:
set/A negRan=~%random%+1
;-)