gpt4 book ai didi

vb.net - 真随机数生成

转载 作者:行者123 更新时间:2023-12-02 21:44:58 26 4
gpt4 key购买 nike

所以基本上,我有这个函数,它应该生成两个介于高数和低数之间的随机整数,以在表单上表达观点。我知道 Random 可以处理这个问题,但是 Random 具有一致性,而我需要表单上的数字完全随机。

例如,我生成的大多数点都出现在对角线上。这是我想避免的。它应该贯穿整个表格的最高数字和最低数字之间。

这是我当前的功能:

Function GetNewLocation() As Point
Randomize()
Dim int1 As Integer = RandomNumber(6, 345)
Randomize()
Dim int2 As Integer = RandomNumber(35, 286)
Return New Point(int1, int2)
End Function

Function RandomNumber(ByVal low As Integer, ByVal high As Integer) As Integer
Randomize()
Return New Random().Next(low, high)
End Function

如何在点不在对角线上的情况下生成真正的随机数?

最佳答案

每次创建 Random 的新实例时,您都会重置随机数生成器。由于默认构造函数使用Environment.TickCount作为种子,因此您通常会返回完全相同的伪随机数序列。系统不会经常更新 TickCount。这就是为什么在您看来您得到的是非随机数。

尝试像这样更改您的代码:

Private _rnd As New Random()
Function RandomNumber(ByVal low As Integer, ByVal high As Integer) As Integer
Return _rnd.Next(low, high)
End Function

关于vb.net - 真随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com