gpt4 book ai didi

vb.net - 真随机数生成

转载 作者:行者123 更新时间:2023-12-02 04:46:36 27 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/

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