如何產生真正的隨機函數(shù)?
更新時間:2007年03月08日 00:00:00 作者:
//MSDN
Randomize
為了生成某個范圍內的隨機整數(shù),可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這里,upperbound 是隨機數(shù)范圍的上限,而 lowerbound 則是隨機數(shù)范圍的下限。
---- 在VB中的隨機函數(shù)是Rnd,但在使用的過程中發(fā)現(xiàn),雖然程序啟動后產生的數(shù)值是隨機的,但對于每次重新啟動,程序都會產生相同的隨機數(shù)序列,應該怎樣解決?
----VB中隨機函數(shù)的原形是: Rnd(number),Rnd函數(shù)返回小于1但大于或等于0的值。number (可選項)的值決定了Rnd生成隨機數(shù)的方式。由于生成隨機數(shù)方式的確定,導致了每次新啟動隨機函數(shù),最初給定的種子都會生成相同的數(shù)列,因為每一次調用Rnd函數(shù)都用數(shù)列中的前一個數(shù)作為下一個數(shù)的種子。
----為了每次運行程序調用隨機函數(shù)都會有不同的隨機數(shù)序列,在調用Rnd之前,先使用無參數(shù)的Randomize語句初始化隨機數(shù)生成器,該生成器具有根據系統(tǒng)計時器得到的種子,這樣再調用Rnd就會得到不同的隨機數(shù)序列了。
----另外,根據Randomize的工作原理,用戶也可以編制自己的隨機函數(shù),即利用函數(shù)Timer得到從午夜開始到現(xiàn)在經過的秒數(shù),然后再根據要得到的隨機數(shù)值大小對該數(shù)值進行“衰減”處理,這樣得到的數(shù)值則可稱得上是真正意義的隨機數(shù)值。
Randomize
為了生成某個范圍內的隨機整數(shù),可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
這里,upperbound 是隨機數(shù)范圍的上限,而 lowerbound 則是隨機數(shù)范圍的下限。
---- 在VB中的隨機函數(shù)是Rnd,但在使用的過程中發(fā)現(xiàn),雖然程序啟動后產生的數(shù)值是隨機的,但對于每次重新啟動,程序都會產生相同的隨機數(shù)序列,應該怎樣解決?
----VB中隨機函數(shù)的原形是: Rnd(number),Rnd函數(shù)返回小于1但大于或等于0的值。number (可選項)的值決定了Rnd生成隨機數(shù)的方式。由于生成隨機數(shù)方式的確定,導致了每次新啟動隨機函數(shù),最初給定的種子都會生成相同的數(shù)列,因為每一次調用Rnd函數(shù)都用數(shù)列中的前一個數(shù)作為下一個數(shù)的種子。
----為了每次運行程序調用隨機函數(shù)都會有不同的隨機數(shù)序列,在調用Rnd之前,先使用無參數(shù)的Randomize語句初始化隨機數(shù)生成器,該生成器具有根據系統(tǒng)計時器得到的種子,這樣再調用Rnd就會得到不同的隨機數(shù)序列了。
----另外,根據Randomize的工作原理,用戶也可以編制自己的隨機函數(shù),即利用函數(shù)Timer得到從午夜開始到現(xiàn)在經過的秒數(shù),然后再根據要得到的隨機數(shù)值大小對該數(shù)值進行“衰減”處理,這樣得到的數(shù)值則可稱得上是真正意義的隨機數(shù)值。
相關文章
VB語言使用ADO連接、操作SQLServer數(shù)據庫教程
這篇文章主要介紹了VB語言使用ADO連接、操作SQLServer數(shù)據庫教程,本文講解詳細、代碼中有大量注釋,是非常好的一篇教程,需要的朋友可以參考下2014-08-08