設定隨機數範圍, 返回陣列長度, 得到一組不重複的隨機數
unit unit11;
inte***ce
uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls;
type
tform11 = class(tform)
btn1: tbutton;
procedure btn1click(sender: tobject);
private
//生成的隨機數函式
function createrandom(const rangestart, rangeend,
resultcount: integer): tarray;
public
end;
var form11: tform11;
implementation
//createrandom(隨機數取值範圍起始值, 終止值; 返回陣列長度)
function tform11.createrandom(const rangestart, rangeend, resultcount : integer) : tarray;
var tmplst : tstringlist; //可以使用泛型列表或陣列代替
i, n: integer;
begin
if rangestart >= rangeend then
raise exception.create('錯誤的隨機數範圍!');
if resultcount < 1 then
raise exception.create('隨機數返回陣列長度必須大於0!');
tmplst := tstringlist.create;
tmplst.capacity := rangeend - rangestart;
tryfor n := rangestart to rangeend do
begin
tmplst.add(inttostr(n));
end;
randomize;
setlength(result, resultcount);
for i := 0 to resultcount do
begin
n := random(tmplst.count - 1);
result[i] := strtoint(tmplst.strings[n]);
tmplst.delete(n);
end;
finally
tmplst.free;
end;
end;
procedure tform11.btn1click(sender: tobject);
var myarr : tarray;
i : integer;
s : string;
begin
s := '';
myarr := createrandom(0, 100, 10);
for i := low(myarr) to high(myarr) do
s := s + inttostr(myarr[i]) + ' ';
showmessage(s);
s := '';
myarr := createrandom(100, 1000, 15);
for i := low(myarr) to high(myarr) do
s := s + inttostr(myarr[i]) + ' ';
showmessage(s);
end;
end.
delphi 產生隨機數
檢舉 2010 05 08 09 41你的樣子20 分類 其他程式語言 瀏覽6314次 怎樣產生隨機數 條件是 1.這些隨機數每個都不同 5個數吧 2.隨機數的範圍在1到35之間 我要把他們顯示在 memo1 中 怎麼顯示呢 謝謝大俠們了 回答好了 加 50 procedure tform1.but...
隨機數 偽隨機數
隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...
隨機數生成 偽隨機數和真隨機數
c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...