例如生成一个随机的4位数,但是每个位的数都不相同...怎么生成啊? 多谢了

解决方案 »

  1.   

    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;
      

  2.   

    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;
      

  3.   

    楼上虽然能随机,但不能保证不相同!
    看看下面的算法,结果按位数放在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;
      

  4.   

    错了,应该是: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;