如何在C#中制作快速的RNG(随机数生成器),以支持用maxValue(和/或minValue)填充字节数组?
我已经找到了这个http://www.codeproject.com/KB/cs/fastrandom.aspx,但是没有这些功能。
最佳答案
用整数填充字节的事实与System.Random的典型用法情况有很大不同,如果确实需要,您可能会打败它。
System.Random供一般使用。 (实际上,当我对它们进行速度和分布测试时,通常会发现它们对系统随机例程没有启发。)在某些情况下,您还需要其他东西。但是您必须非常明确自己的需求。多快?您愿意放弃什么?
如果您确实需要“快速”,Marsaglia已经产生了许多非常快速的随机数生成器,它们可以适应您的需求。以下是其中一个Xorshift的一些链接:
最后一个解决了您针对字节的事实。
我只需要几次 super 快速随机。在处理器速度较慢的主机游戏中,随机可能会导致达到帧速率目标与不达到帧速率目标之间的差异。您的用例是什么?如果可以,请务必使用System.Random。
或者,调整您在问题中链接的例程(作者声称这是System.Random速度的8倍。)
关于c# - 快速随机发生器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1790776/