Random VB6随机数生成种子范围

Random VB6随机数生成种子范围,random,vb6,scope,random-seed,Random,Vb6,Scope,Random Seed,随机(种子)功能的范围是什么?当从myfunction调用generate时,该代码的编写方式是否会将随机数生成器的种子值设置为20?随机函数是改变全局变量还是局部变量 谢谢你的帮助 Function myfunction() Call seed() Call generate() End Function Function seed() Randomize (20) End Function Function generate() Dim X As Inte

随机(种子)功能的范围是什么?当从myfunction调用generate时,该代码的编写方式是否会将随机数生成器的种子值设置为20?随机函数是改变全局变量还是局部变量

谢谢你的帮助

Function myfunction()
    Call seed()
    Call generate()
End Function

Function seed()
    Randomize (20)
End Function

Function generate()
    Dim X As Integer
    X = CInt(100*Rnd)
End Function

如果使用显式值调用Randomize或根本不调用Randomize,则程序的每次启动都会得到相同的序列。尝试:

Dim i As Long
Dim sText As String

sText = ""
For i = 1 To 10
  sText = sText & CInt(100 * Rnd(10)) & vbCrLf
Next i

MsgBox sText

但当然,有时可能是想要的结果…

如果您使用显式值调用Randomize或根本不调用Randomize,则程序的每次启动都会得到相同的序列。尝试:

Dim i As Long
Dim sText As String

sText = ""
For i = 1 To 10
  sText = sText & CInt(100 * Rnd(10)) & vbCrLf
Next i

MsgBox sText

但当然,有时它可能是想要的结果…

Randomize()
具有应用范围。它只需要在启动时播种一次,通常是在
Form_Load()
或类似的初始化事件中。您还可以在
generate()
函数中使用
Static
布尔值,以确保在第一次生成数字时调用
Randomize()
。也没有太多理由传递像20这样的值。只需单独使用
随机化
语句即可。上面使用的括号也很愚蠢,几乎和不返回值的函数一样糟糕。
Randomize()
具有应用范围。它只需要在启动时播种一次,通常是在
Form_Load()
或类似的初始化事件中。您还可以在
generate()
函数中使用
Static
布尔值,以确保在第一次生成数字时调用
Randomize()
。也没有太多理由传递像20这样的值。只需单独使用
随机化
语句即可。上面使用的括号也很愚蠢,几乎和不返回值的函数一样糟糕。