Delphi 获取不重复随机数《LceMeaning》

uses
  ShareMem;


type
  TArray = array of Integer;


function CreateRandom(ResultCount, MaxInt: Integer) : TArray;
var                 // 生成个数     最大数值
  I, N, count : Integer;                 
  a : array of Integer;
  label L;
begin
  Randomize;
  SetLength(a,ResultCount);
  for I := 0 to ResultCount -1 do
    begin
      L:
      N := Random(MaxInt);
      for count := 0 to I do
      begin
        if a[count] = N then
        begin
          goto L;
        end;
      end;
      a[i] := N;
      //tmpLst.Add(IntToStr(N));
      Result[i] := n;
    end;
end;


//调用方法
procedure TForm1.btn1Click(Sender: TObject);
var
  MyArr : TArray;
  I : Integer;
  s : string;
begin
  SetLength(MyArr, ResultCount); 
  try
    MyArr := CreateRandom(StrToInt(edt3.Text),lst1.Items.Count);
    for I := 0 to StrToInt(edt3.Text)-1 do
      s := s + lst1.Items[Myarr[i]] + ',';
  except  

  end; 
    Memo2.Text := S;
end;

以上经过XE5编译通过, 如果不引用ShareMem,运行时可能会弹错。

转载于:https://www.cnblogs.com/LceMeaning/p/3685873.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值