2008-11-11 72 views
0

所以我產生使用賽第一輪和隨機化設置種子,看起來像這樣一個隨機數返回相同的值:ASP - 隨機化功能爲兩個不同的種子

Randomize lSeed 
Response.Write Rnd 

我注意到,它的返回對於lSeed(例如123,124),在一行中的兩個值的結果相同但是在125上它將返回一個新值,但是126將與125中的on相同。爲什麼會這樣呢?

編輯:

我已經試過這樣的事情

Randomize 
Randomize lSeed 
Response.write Rnd 

而且我得到我上述相同的結果。

+0

您能否爲此展示更完整的代表,我沒有得到您的結果,我得到的行爲與您所描述的不同。一個隨機的固定種子獲得一個獨特的系列。 – AnthonyWJones 2008-11-12 15:43:38

回答

0

的問題是,該值因爲種子在其他環境中太大(數據庫值增加)。我最終做了Mod 100的價值,以獲得半隨機的東西,而且總是會工作的很低。

0

您應該在每次獲得隨機值之前進行種子培植。我建議播種定時器。

+0

我試過重新種植。我編輯了上面的問題來解釋我所嘗試過的。 – Jon 2008-11-11 20:30:13

0

你也可以關閉種子的,似乎工作得很好當前時間

+0

我需要有時返回一致的結果,所以我需要重新從我給它的值。 – Jon 2008-11-11 20:30:45

+1

如果你想要一致的結果,你可能不應該使用隨機數字。 – Karl 2008-11-11 20:34:02

0
' For ASP, you can create a function like: 
Public Function RandRange(ByVal low As Integer, ByVal high As Integer) As Integer 
    Randomize() 
    Return ((Rnd() * (high - low)) + low) 
End Function 

' For ASP.NET, you can create a function like: 
Private _rnd As System.Random() 
Public Function RandRange(ByVal low As Integer, ByVal high As Integer) As Integer 
    ' Purpose: Returns Random Integer between low and high, inclusive 
    ' Note: _rnd variable must be defined outside of RandRange function 
    If _rnd Is Nothing Then 
     _rnd = New System.Random() 
    End If 
    Return _rnd.Next(low, high) 
End Function