从源数组中取不同的随机数
来源:互联网 发布:汉字转换拼音软件 编辑:程序博客网 时间:2024/05/04 01:55
TArrayInt = Array Of Integer; //自定义整数数组
Function GetRandomIntArray(SrcArray: TArrayInt; Var DestArray: TArrayInt;
CntDest: integer): Boolean;
Var
i, j, lRnd, lCntSrc: integer;
Begin
Try
If CntDest <= 0 Then
CntDest := high(SrcArray);
lCntSrc := high(SrcArray);
setlength(DestArray, CntDest);
CntDest := CntDest - 1;
For i := 0 To CntDest Do
DestArray[i] := 0;
{If lCntDest >= lCntSrc Then
Begin
For i := 0 To lCntSrc Do
DestArray[i] := SrcArray[i];
result := true;
exit;
End;
}
If CntDest > lCntSrc Then //个数相同作乱序处理
CntDest := lCntSrc;
{第一次从 SrcArray[0] ~ SrcArray[lCntSrc]中任意选择一个数,作为第一个数;
剔除此数,把最末一个数SrcArray[lCntSrc]添到这个位置;
第二次从SrcArray[0] ~ SrcArray[lCntSrc-1]中任意选择一个数,作为第二个数;
剔除此数,把最末一个数SrcArray[lCntSrc-1]添到这个位置;}
j := -1;
For i := 0 To CntDest Do
Begin
lRnd := Random(lCntSrc + 1 - i);
j := j + 1;
DestArray[j] := SrcArray[lRnd];
SrcArray[lRnd] := SrcArray[lCntSrc - i];
End;
result := true;
Except
On e: exception Do
Begin
Raise Exception.Create('uCommonOperate.GetRandomIntArray ' + e.Message);
End;
End;
End;
- 从源数组中取不同的随机数
- 取不同的随机数
- 如何在一个数组中取不同的6个随机数
- 生产N个不重复的随机数(从一个数组中随机取N个元素)
- 在数组中放入十个不同的随机数
- 从0~250的范围内取10个不同的随机数
- 从数组中取出不同的元素
- 001 - 取两个数组中 不同的元素
- 算法题32 从随机数数组中选取长度不小于3的最长等差数列
- php取数组随机数
- PHP编程----取不同随机数
- 一个取n个不同的随机数的算法
- 随机数算法之从N个数中取M个数
- 数据库中取随机数的方法讨论
- Java中取某一个范围的随机数
- Java 中取随机数的方法
- 如何从字符串中取数组
- 随机从数组中取数据
- C#队列例子
- Java FX 编写脚本
- String.Format使用
- SA密码遗忘后的解决方法
- 最近计划
- 从源数组中取不同的随机数
- 感情2010
- 白天求生存,晚上谋发展
- [窗]
- 晨曦小竹前端页面代码规范
- sc config 设置系统服务的语法
- Excel公式 判断两列是否有相等的
- Alfresco 官方新闻:Alfresco 3.3 社区版发布,功能包括环境编辑,与IBM Lotus Quickr整合等
- C# 4.0的一些新特性