刚开始学习Dephi,写这个相当于学习笔记,有不正确的地方,请各位大神多多指教
生成指定范围的不重复大的随机数
指定随机数的范围,生成不重复的随机数
while si < sum do //si 表示生成随机数的个数
beginrandSum[si]:= Random(maxSum-minSum)+minSum; //maxSum 表示最大范围值,minSum表示最小范围值
if si > 0 then
begin
ni := 0;
while ni < si do //每产生一个随机数,就将这个随机数与前面产生的所有的随机数进行比较
begin
if randSum[ni] = randSum[si] then //将刚生成的随机数与之前的产生的随机数进行比较 ,如果随机数重复
begin
Break; //跳出while循环
end;
Inc(ni); //如果没有重复,ni加1,继续也后面的进行比较
end;
end
else
begin
Inc(si);
end;
if si = ni then //此时没有break,所以没有重复!如果break掉则si不变
si := ni + 1; //i++;
end;