求解(最好甲鱼老师能给解释下)
procedure TForm3.Button1Click(Sender: TObject);var
arr : array of integer;
var
i ,a,b : integer ;
begin
Randomize;// 功能需讲解一下,解决之前随机数不“随机”问题
edit1.Text :='';
edit2.Text :='';
edit3.Text :='';
for i := 1 to 10do
begin
arr:= i;
edit1.Text :=inttostr(arr)+',' +Edit1.text;
//arr:= Random(90)+10;
//Edit1.Text:= Edit1.Text + IntToStr(arr) + ',';
end;
edit1.Text :=copy (edit1.Text, 1,length(edit1.text)-1 );
a :=arr;
b := 1;
fori := 2 to 10 do
begin
if (a < arr) then
begin
a := arr;
b :=i;
end;
end;
edit2.Text:=inttostr(a);
edit3.Text:=inttostr(b);
end;
为什么 edit1.Text :=inttostr(arr)+',' +Edit1.text; 这样写,和Edit1.Text:= Edit1.Text + IntToStr(arr) + ',';这写得出的结果是反着的? Q1:Randomize 语句初始化随机数生成器。如果不使用 Randomize,则第一次调用 Rndom 函数时,它将使用相同的数字作为种子值,随后使用最后生成的数值作为种子值。建议每次取随机值的时候,先用Randomize,再用random,因为Randomize是起初始化作用的。如果只用random,比如:随机取100次,你就会发现有很多都在一个比较接近的范围,使得随机行显得稍差!
大白话解释就是人工是没办法弄出完全的随机数,只能通过随机算法尽可能的模拟随机数,随机算法需要一个随机的种子数作为开关,Randomize就是生成这个种子~
Q2:反过来写肯定是反着的咯~ 我的结果是这样反的啊:10,9,8,7,6,5,4,3,2,1:sad 小甲鱼 发表于 2014-1-6 15:40 static/image/common/back.gif
Q1:Randomize 语句初始化随机数生成器。如果不使用 Randomize,则第一次调用 Rndom 函数时,它将使用相同的数 ...
回复他就是因为他是VIP吗:huffy: icerlau 发表于 2014-1-6 17:12 static/image/common/back.gif
我的结果是这样反的啊:10,9,8,7,6,5,4,3,2,1
对的呀,拼接的顺序倒了嘛。
例如'ABC' + 'D' == 'ABCD',但'D' + 'ABC' == 'DABC' 对哦~3Q~老师好耐心啊
页:
[1]