delphi提取任意長度隨機數

2021-06-12 07:55:37 字數 1896 閱讀 9930

設定隨機數範圍, 返回陣列長度, 得到一組不重複的隨機數

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 函...