方法:
产生范围数据 int((upperbound-lowerbound+1)*random+lowerbound)
其中upperbound为随机数范围的上限,lowerbound为下限至于不相等可以可以用动态数组,把产生的当前数据与数组数据一一比较.若没有相同的就把当前数据添加到数组中。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      A: array[0..9] of Integer;
      I, J, T: Integer;
      S: string;
    begin
      Randomize;
      for I := 0 to 9 do A[I] := I; //得到顺序的数组
      ///////Begin 随机交换两个元素
      for I := 0 to 9 do begin
        J := Random(10) + 1;
        T := A[I];
        A[I] := A[J];
        A[J] := T;
      end;
      ///////End 随机交换两个元素
      for I := 0 to 9 do S := S + ',' + IntToStr(A[I]); //输出到字符中
      Delete(S, 1, 1);
      Caption := S;
    end;
      

  2.   

    //....
      for I := 0 to 9 do A[I] := I + 1; //得到顺序的数组
      ///////Begin 随机交换两个元素
      for I := 0 to 9 do begin
        J := Random(10); //#这里不加一
        T := A[I];
        A[I] := A[J];
        A[J] := T;
      end;
      ///////End 随机交换两个元素
    //....