如题

解决方案 »

  1.   

    1、不带参数的Random生成的随机数范围:0 <= Number < 1.0 
    2、带一个参数LimitPlusOne的Random函数,声称的随机数的范围为:0 <= Number < LimitPlusOne。 
    如果采用第1种,可以这样: 
    n := 1111 + (9999 - 1111) * Random; 
    如果采用第2种,可以这样: 
    n := 1111 + Random(9999 - 1111);
      

  2.   

    这是我以前的一个猜数字游戏的一段代码,也许对你有帮助。
    procedure TMainForm.GetAimNo; //获得不重复的四位数字
    var
      i: Integer; //Cycle var
      iTmp: Integer; // Temporary var
    begin
      sAllNo:='0123456789';
      sAimNo:='';
      Randomize;
      for i:= 1 to 4 do begin
        iTmp:= Random(10-i);
        sAimNo:= sAimNo + sAllNo[iTmp+1];
        Delete(sAllNo,iTmp+1,1);
      end;
      Label1.Caption:=sAimNo;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
        while Memo1.Lines.Count<1000 do
        begin
            Randomize;
            i:=random(9999);
            if Memo1.Lines.IndexOf(IntToStr(i))<0 then
            Memo1.Lines.Add(IntToStr(i));
        end;
    end;
      

  4.   

    對 hellolongbin(一个人[终不似 少年游]) 的一點改動
    判斷重復關鍵用Memo1.Lines.IndexOf方法
    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
    begin
        Randomize;
        while Memo1.Lines.Count<1000 do
        begin
            i:=random(10000);
            if Memo1.Lines.IndexOf(IntToStr(i))<0 then
            Memo1.Lines.Add(IntToStr(i));
        end;
    end;