首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VB6 Rnd 函數每次生成相同隨機數的解決:Randomize 初始化種子

     編輯:程式設計疑難解答

問題

VB6 使用 Rnd 函數生成隨機數,每次程序運行序列完全相同。

原因

Rnd 產生偽隨機序列,默認種子固定,未初始化時每次從相同起點開始。

解決

' 程序啟動時調用一次
Randomize Timer ' 或 Randomize (使用系統時間作種子)

' 之後使用 Rnd
Dim r As Single
r = Rnd() ' 0 到 1 之間
' 指定範圍整數
Dim i As Integer
i = Int((max - min + 1) * Rnd + min)

最佳實踐

  • 在 Form_Load 或 Sub Main 中調用 Randomize
  • 僅調用一次,重複調用反而降低隨機性
  • 加密級隨機需使用 CryptoAPI
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved