Pascal为什么这个简单的随机范围不起作用?

时间:2015-02-03 17:55:16

标签: pascal

尝试获取(变量-2)和(变量+2)范围内的数字。 例如,如果X = 7,那么我想要一个随机数生成器,它给出一个5到9范围内的值。见下面我的尝试,它给了我意想不到的结果:

var x, xRange, i,count,xLower, xhigher:integer;
begin
  x:=7;
  xLower:=x-2;
  xHigher:=x+2;

  for count:= 1 to 20 do
  begin
    i:=random(xHigher)+xLower;
    writeln(i);
  end;
readln;
end. 

1 个答案:

答案 0 :(得分:1)

user 500 - Internal Server ErrorMarat Talipov

所述

你想要:

i:=random(xHigher-xLower)+xLower;

在调用Random之前,您还应该使用Randomize;调用,以便每次都获得一个新的随机值。所以最后:

var x, xRange, i,count,xLower, xhigher:integer;
begin
  Randomize;
  x:=7;
  xLower:=x-2;
  xHigher:=x+2;

  for count:= 1 to 20 do
  begin
    i:=random(xHigher-xLower)+xLower;
    writeln(i);
  end;
readln;
end.