如何在同一个表单中创建两个单独的随机数字?
问题描述:
试图做一个数字添加游戏作为计算机科学项目的一部分,并与我目前有代码显示在不同的文本框中相同的数字。我希望两个不同的随机数字显示在单独的框中,谢谢。如何在同一个表单中创建两个单独的随机数字?
Dim rn As Random
Dim number As Integer
rn = New Random
number = rn.Next(1, 9)
Dim rn2 As Random
Dim number1 As Integer
rn2 = New Random
number1 = rn2.Next(1, 9)
tbxOne.Text = number.ToString
tbxTwo.Text = number1.ToString
End Sub
答
您可以使用1个实例本身创建随机数。而且你的随机数可以不同或相同。
Dim rn As Random
Dim number As Integer
Dim number1 As Integer
rn = New Random
number = rn.Next(1, 9)
number1 = rn.Next(1, 9)
tbxOne.Text = number.ToString
tbxTwo.Text = number1.ToString
答
您正在同时创建两个Random实例。这些数字并非真正随机的;他们的种子是时间依赖的,所以你的两个兰德姆将有相同的种子。你应该使用一个随机,每当你需要一个新值时使用它的Next函数。
Dim rn As New Random
Dim number As Integer = rn.Next(1, 9)
Dim number1 As Integer = number
Do until number1 <> number
number1 = rn.Next(1, 9)
Loop
tbxOne.Text = number.ToString
tbxTwo.Text = number1.ToString
可能有一个更优雅的解决方案来确保唯一的数字,但循环可能会满足您的需求。
使用*一个*随机实例,并再次调用NEXT。这不会保证它们不同 - 随机并不意味着独特 – Plutonix
'Dim nums = Enumerable.Range(1,8).OrderBy(Function(r)rn.Next())。Take(2).ToArray()''会给你从1到8的2个不同值的数组(如你的代码)'tbxOne.Text = nums(0).ToString' – Plutonix