delphi怎么获取不重复的随机数?不要复制网上的结果,每一步给个解释,新手学习中。

虽然用了ramdomize,但是随机数很多重复的,希望获取的随机数没有重复的。谢谢各位大虾!... 虽然用了ramdomize,但是随机数很多重复的,希望获取的随机数没有重复的。谢谢各位大虾! 展开
 我来答
永恒pascal
2016-12-05 · TA获得超过4357个赞
知道大有可为答主
回答量:3902
采纳率:93%
帮助的人:721万
展开全部
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个随机数进行比较,只有均互不相同时才行,否则重新来过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式