视觉基本随机发生器如何工作?

时间:2014-04-05 21:24:47

标签: vb.net visual-studio random

visual basic如何创建随机数?我知道如何制作一个随机数生成器,我知道它的作用(随机生成一个数字),但我想知道如何。尝试研究这个问题时出现的问题是一切都解释了如何制作一个,而不是计算机如何做到这一点。在我的编程课程中,人们总是在谈论visual basic如何拥有比许多其他语言更好的随机生成器,但他们从未支持过这种说法,我很想知道vb生成器是如何工作的。

1 个答案:

答案 0 :(得分:1)

没有真正的随机数生成器。所有的计算机都是由算法驱动的,所以最终都是确定性的,所以从来都不是真正随机的,可以预测(即使很难)。有些被称为伪随机数生成器,出于安全考虑,它们实际上是随机的。您可以在此处查看.NET Random类的实现方式:

http://referencesource.microsoft.com/#mscorlib/system/random.cs#bb77e610694e64catrue

这种实现对于安全相关的用途来说不够安全,你可以使用RandomNumberGenerator类,它基于Windows Cryptographic API(它是封闭源代码)。围绕它的包装器有源:

http://referencesource.microsoft.com/#mscorlib/system/security/cryptography/randomnumbergenerator.cs#828597225647bdbb