核心代码:
type
// 定义一个名为 TRandomEngine 的类,继承自 TObject
TRandomEngine = class(TObject)
private
// 私有成员变量
FSelected : TBits; // 用于跟踪已选择的数字的位集合
FArrSize, FNumbersUsed: longint; // 数组大小和已使用的数字数量
FMinNumber, FMaxNumber: longint; // 允许的最小和最大数字范围
FUnique : boolean; // 指示是否选择唯一数字的标志
FRandSeed : Integer; // 随机数生成器的种子
// 私有方法
procedure SizeSelArray; // 调整选择数组的大小
procedure SetFMinNumber(NewValue: longint); // 设置最小数字的方法
procedure SetFMaxNumber(NewValue: longint); // 设置最大数字的方法
function GetFNumbersFree: longint; // 获取未使用的数字数量的方法
public
// 公共成员
constructor Create; // 类的构造函数
destructor Destroy; override; // 类的析构函数
procedure Reset; // 重置随机数生成器状态的方法
function GetRandom: longint; // 获取一个随机数的方法
function IsUsed(Index: longint): boolean; // 检查指定索引的数字是否已经被使用的方法
// 属性
property MinNumber: longint read FMinNumber write SetFMinNumber; // 最小数字的属性
property MaxNumber: longint read FMinNumber write SetFMaxNumber; // 最大数字的属性
property Unique: boolean read FUnique write FUnique; // 是否选择唯一数字的属性
property nRandSeed: Integer read FRandSeed write FRandSeed; // 随机数生成器的种子属性
property NumbersUsed: longint read FNumbersUsed; // 已使用的数字数量的属性
property NumbersTotal: longint read FArrSize; // 数组总大小的属性
property NumbersFree: longint read GetFNumbersFree; // 未使用的数字数量的属性
end;