假設(shè)有一組數(shù)字 1~1000,請(qǐng)將它們隨機(jī)填充在一個(gè)數(shù)組中
要求:
1、數(shù)組中無(wú)重復(fù)數(shù)字
2、整個(gè)程式運(yùn)算很快!
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 來(lái)代替 Array,以方便直接觀看執(zhí)行結(jié)果
--------------------------------
小弟才疏學(xué)湥粲兄囌`請(qǐng)不吝指教
--------------------------------
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注