
delphi怎么获取不重复的随机数?不要复制网上的结果,每一步给个解释,新手学习中。
展开全部
var
a:array[1..200] of integer;
n,i,j,t:integer;
b:boolean;
begin
n:=100;
randomize;
a[1]:=random(100);
for i:=2 to n do
repeat
b:=false;
a[i]:=random(100);
for j:=1 to i-1 do
if a[i]=a[j] then begin
b:=true;
break;
end;
until b=false;
{以上程序产生不相同的随机数 ! }
for i:=1 to n do writeln(a[i]);
writeln;
for i:=1 to n-1 do for j:=i+1 to n do
if a[i]>a[j] then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to n do writeln(a[i]);
end.
追问
能具体解释下吗?
追答
产生新的随机数时,要和前n-1个随机数进行比较,只有均互不相同时才行,否则重新来过。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询