Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 什么';在VisualBasic2008中,随机生成数字的最快方法是什么?_Vb.net_Visual Studio_Random - Fatal编程技术网

Vb.net 什么';在VisualBasic2008中,随机生成数字的最快方法是什么?

Vb.net 什么';在VisualBasic2008中,随机生成数字的最快方法是什么?,vb.net,visual-studio,random,Vb.net,Visual Studio,Random,随机生成数字的最快方法是什么,随机还是模拟随机?我真的不需要一个真正的随机数生成器,它可以接受模拟随机数。我尝试了其他随机模拟方法,但没有一种比这更快 以下是我现在最快的方法: Private myRandom As New System.Random(CType(System.DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer)) Private sub Test1 Dim F as integer = myRandom(0,

随机生成数字的最快方法是什么,随机还是模拟随机?我真的不需要一个真正的随机数生成器,它可以接受模拟随机数。我尝试了其他随机模拟方法,但没有一种比这更快

以下是我现在最快的方法:

Private myRandom As New System.Random(CType(System.DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer))
Private sub Test1
     Dim F as integer = myRandom(0, 203)
End Sub

你真的需要最快的方法吗?对it质量的最低限制是什么

我怀疑内置的随机数生成器random虽然不一定是最快的,但在“最低标准”和速度之间有一个合理的折衷

如果没有,这里有一些其他随机数生成器的信息,其中一些可能更快,一些可能更糟。在质量和速度之间需要权衡,所以我怀疑你会想要最快的


`

我能想到的获取随机数的最快方法是提前生成一个大的随机数数组,然后反复循环。这也可能产生质量非常差的结果,除非阵列的大小非常大。质量也会受到数字生成方式的影响。

以下是三种方法,按速度顺序排列(在我的测试中,百万次迭代需要19毫秒):

稍微慢一点的是调用xkcd函数(24毫秒):

浮点VB函数(67毫秒)稍微慢一点:


每一个都比系统时钟的最后几位还要快。函数开销似乎足以证明使用内置随机函数的合理性。例如,如果您使用几乎任何一种算法生成浮点随机数,它最终将比rnd vb函数慢。整数和随机类也是一样。

随机类有什么问题?顺便说一句,你不需要亲自播种;默认情况下,它将使用
Environment.TickCount
作为种子。强制xkcd引用:
int random(){return 4;}//由fair dice roll选择。
+1 Jon指出质量和速度random之间存在权衡。Next()在我的2.6GHz计算机上每秒生成约7000万个数字。够快吗?
dim rand as new random(0)

i = rand.next
function random as integer
random = 4 ' chosen by fair dice roll
end function
x = rnd(x)