为什么我的所有Random变量都相同(Visual Basic)?

时间:2014-04-24 09:47:28

标签: vb.net random

我尝试使用多个随机变量来处理我在Visual Studio中制作的内容。这是代码。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    'Declaring random variables

    Dim cC1 As New Random

    Dim cC2 As New Random

    Dim cC3 As New Random

    Dim cC4 As New Random

    Dim cC5 As New Random

    Dim cCard1 As New Integer
    cCard1 = cC1.Next(1, 14)

    Dim cCard2 As New Integer
    cCard2 = cC2.Next(1, 14)

    Dim cCard3 As New Integer
    cCard3 = cC3.Next(1, 14)

    Dim cCard4 As New Integer
    cCard4 = cC4.Next(1, 14)

    Dim cCard5 As New Integer
    cCard5 = cC5.Next(1, 14)

    'Computers random choice

    Dim x As New Integer
    Dim s As New Random
    x = s.Next(1, 14)

还有一点,但它基本上是重复的。问题是这些"随机"变量都是一样的。我认为错误可能是因为代码是这样的:

Dim cCard1 = cC1.Next(1,14)

我已经编写了另一个用完全相同的代码执行我想要的程序,而这个程序变量并不是随机的。 :(

将其更改为当前代码后,问题仍然很突出,我正在寻找解释原因的原因,更重要的是,一种纠正此错误的方法。任何形式的帮助将受到高度赞赏!

1 个答案:

答案 0 :(得分:3)

这是因为当您创建Random实例时,它会使用当前时间作为其种子。种子是一个数字,当它相同时,产生完全相同的伪随机数序列。在你的情况下,这发生得足够快,所有实例共享相同的种子,因此所有实例都产生相同的第一个数字。

您应该创建一个 Random实例并从中获取多个数字。