Randomize Random
在學習ProcessMessage函數時候看到了這個代碼,沒用過Randomize函數,所以順便學習學習;
procedure TForm1.Button1Click(Sender: TObject);varI, J, X, Y: Word; beginI := 0;J := 0;while I < 64000 dobeginRandomize;while J < 64000 dobeginY := Random(J);Inc(J);end;X := Random(I);Inc(I);end;Canvas.TextOut(10, 10, 'The Button1Click handler is finished');end;
這個函數在幫助里面的原說明如下:
Initializes the random number generator with a random value.
前面的Initializes the random number generator 應該翻譯為:初始化隨機數產生器? 這應該是沒錯的,但with a random value 怎么翻譯呢,用一個隨機值?接著往下看,下面還有個Y:=Random(J);會不會跟這個函數有關系?繼續查random()函數:
Generates random numbers within a specified range.//翻譯為:在指定的范圍內產生隨機數
Delphi syntax:
function Random [ ( Range: Integer) ];
下面還有更詳細的說明:
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
0 <= X < 1.
?
到此,我還是看不出來這兩個函數有什么關系,再看一下Randomize 的description:
Description
Randomize initializes the built-in random number generator with a random value (obtained from the system clock). The random number generator should be initialized by making a call to Randomize, or by assigning a value to RandSeed.
{Randomize 用一個隨機值來初始化內置的隨即數產生器(這個隨機值來自于系統時鐘)。隨即數產生器通過調用Randomize函數或指定RandSeed變量來進行初始化。}
Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.
{不要在同一層循環內同時調用Randomize和Random函數。典型的應用是,在所有的random函數前調用一次Randomize}
?
我的理解是,隨即數的產生是要根據系統時鐘進行變化的,randomize的作用就是將 the built-in random number generator 和系統時鐘掛鉤,接下來的random函數才會起作用。
?
靠理論不行,寫個例子:
procedure TForm1.bt_3Click(Sender: TObject); vari:Integer; begin//Randomize;Memo_1.Lines.Clear;for i := 1 to 100 doMemo_1.Lines.Add(IntToStr(Random(100))); end;
注銷randomize,運行,沒什么問題啊,照樣變化!
把注銷去掉,運行,也能變化!
怎么回事,d7合二為一了?
放到d5下,還是一樣!
怎么回事?
到網上一查,是去掉randomize后,運行幾次的隨即數取值都相同,而不是在一次運行期間的數據變化不變。仔細看了一下,果然如此。
到此,這兩個函數我搞明白了。
明白是明白了,可是,以前都是直接寫Random沒有randomize!汗!還好那個數據的重復率幾乎為0,要不麻煩大了。
以后還是多看看書,多看看別人的代碼。
總結
以上是生活随笔為你收集整理的Randomize Random的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 头疼,不停的头疼.
- 下一篇: 软件需求工程 高校教学平台 前景与范围