数字随机排序

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

假设有一组数字 1~1000,请将它们随机填充在一个数组中

要求:

1、数组中无重复数字

2、整个程式运算很快!

william 兄解答

var

Nums: array[1..1000] of integer;

i,j,k,temp: integer;

begin

for i := Low(Nums) to High(Nums) do

Nums[i] := i;

for i := 0 to 1000 do begin // 1001 round may not be enough

j := random(High(Nums))+1;

k := random(High(Nums))+1;

temp := Nums[j];

Nums[j] := Nums[k];

Nums[k] := temp;

end;

end;

Fishman 兄解答

我有一些新的想法,與大家共同分享、討論

PRocedure TForm1.Button11Click(Sender: TObject);

VAR

I,R : Integer;

S : TStrings;

begin

ListBox1.Items.Clear;

for i := 1 to 1000 do

begin

ListBox1.Items.Add(IntToStr(I));

end;

S := TStringList.Create;

S.Assign(ListBox1.Items);

ListBox2.Items.Clear;

FOR I := 1000 DOWNTO 1 DO

BEGIN

R := Random(I) + 1;

ListBox2.Items.Add(S.Strings[R - 1]);

S.Delete(R - 1);

END;

S.Free;

end;

在此我用ListBox 來代替 Array,以方便直接觀看執行結果

--------------------------------

小弟才疏學湥粲兄囌`請不吝指教

--------------------------------

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航