var i:array[0..3] of integer; j,x:integer; begin for j:=low(i) to high(i) do begin randomize; x:=random(9); i[j]:=x; end; end; end;
var i:array[0..3] of integer; j,x:integer; begin for j:=low(i) to high(i) do begin randomize; x:=random(9); i[j]:=x; end; end;
楼上虽然能随机,但不能保证不相同! 看看下面的算法,结果按位数放在out中var i: array [0..9] of integer; out: array [0..3] of integer; j,x: integer; begin for j:= 0 to 9 do i[j]:= j; for j:= 0 to 3 do begin randomize; x:=random(9); out[j]:=i[x]; if not( x = 9) then i[x]:= i[x+1] else i[9]:= i[0] end; end;
错了,应该是:var i: array [0..9] of integer; out: array [0..3] of integer; j,x: integer; begin for j:= 0 to 9 do i[j]:= -1; for j:= 0 to 3 do begin randomize; x:=random(9); while (i[x] > 0) do begin x:= i[x]; end; out[j]:=x; if not( x = 9) then i[x]:= x+1; else i[9]:= 0; end; end;
i:array[0..3] of integer;
j,x:integer;
begin
for j:=low(i) to high(i) do
begin
randomize;
x:=random(9);
i[j]:=x;
end;
end;
end;
i:array[0..3] of integer;
j,x:integer;
begin
for j:=low(i) to high(i) do
begin
randomize;
x:=random(9);
i[j]:=x;
end;
end;
看看下面的算法,结果按位数放在out中var
i: array [0..9] of integer;
out: array [0..3] of integer;
j,x: integer;
begin
for j:= 0 to 9 do i[j]:= j;
for j:= 0 to 3 do
begin
randomize;
x:=random(9);
out[j]:=i[x];
if not( x = 9) then
i[x]:= i[x+1]
else
i[9]:= i[0]
end;
end;
i: array [0..9] of integer;
out: array [0..3] of integer;
j,x: integer;
begin
for j:= 0 to 9 do i[j]:= -1;
for j:= 0 to 3 do
begin
randomize;
x:=random(9);
while (i[x] > 0) do
begin
x:= i[x];
end;
out[j]:=x;
if not( x = 9) then
i[x]:= x+1;
else
i[9]:= 0;
end;
end;