Delphi 中生成指定範圍不重複的隨機數
剛開始學習Dephi,寫這個相當於學習筆記,有不正確的地方,請各位大神多多指教
生成指定範圍的不重複大的隨機數
指定隨機數的範圍,生成不重複的隨機數
while si < sum do //si 表示生成隨機數的個數
beginrandSum[si]:= Random(maxSum-minSum)+minSum; //maxSum 表示最大範圍值,minSum表示最小範圍值
if si > 0 then
begin
ni := 0;
while ni < si do //每產生一個隨機數,就將這個隨機數與前面產生的所有的隨機數進行比較
begin
if randSum[ni] = randSum[si] then //將剛生成的隨機數與之前的產生的隨機數進行比較 ,如果隨機數重複
begin
Break; //跳出while迴圈
end;
Inc(ni); //如果沒有重複,ni加1,繼續也後面的進行比較
end;
end
else
begin
Inc(si);
end;
if si = ni then //此時沒有break,所以沒有重複!如果break掉則si不變
si := ni + 1; //i++;
end;