这里的答案有两个主要方面。您应该适当注意一些非常重要的细节。
简易方法(出于简单性和实用性)的
RNGCryptoServiceProvider,这是在BCL的加密API的一部分,应该为你做的工作。从技术上讲,它仍然是一个伪随机数,但是“随机性”的质量要高得多-
顾名思义,它适用于加密目的。
还有其他具有高质量伪随机生成器的低温API。诸如Mersenne扭曲器之类的算法非常流行。
与
RandomBCL中的类相比,它要好得多。
Random例如,如果在图表上绘制由生成的数字,则您应该能够识别模式,这是弱点的有力标志。这主要是由于该算法仅使用固定大小的种子查找表。艰难的道路(用于高质量的理论随机性)
要生成 真正的
随机数,您需要利用一些自然现象,例如核衰变,微观温度波动(CPU温度是一个相对方便的来源),仅举几例。但是,这要困难得多,并且当然需要附加的硬件。我怀疑实际的解决方案(
RNGCryptoServiceProvider或类似的解决方案)应该为您做得很好。
现在,请注意,如果 确实需要真正的随机数 ,则可以使用 Random.org之类
的服务,该服务会生成具有非常高的随机性/熵(基于 大气噪声
)的数字。数据可免费下载。尽管这确实为您提供了适合科学研究的数据,但对于您的情况,这可能不必要地变得复杂。
最终由您选择,但至少现在您应该能够了解RNG的各种类型和级别,从而做出有意义的决定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)