随机数是如何生成的? java等语言如何生成随机数,特别是GUID是如何生成的?我发现像伪随机数生成器这样的算法使用初始值。
但我需要创建一个随机数程序,其中一旦出现的数字就永远不会重复,即使系统重新启动等也是如此。我认为我需要将这些值存储在任何地方,以便我可以检查该数字是否重复,但是当列表超出限制时,它会变得太复杂。?
第一:如果保证这个数字永远不会重复,那么它就不是很随机。
第二:有很多PRNG算法 http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators.
UPDATE:
第三:有一个UUID 的 IETF RFC https://www.rfc-editor.org/rfc/rfc4122(MS 称之为 GUID),但您应该认识到 (U|G)UID 是not加密安全(如果您担心这一点)。
更新2:
如果您想在生产代码中实际使用类似的东西(不仅仅是为了您自己的启发)please使用预先存在的库。如果您以前从未这样做过(或者即使您曾经这样做过),那么这种代码几乎肯定会存在细微的错误。
更新3:
这是.NET GUID 的文档 http://msdn.microsoft.com/en-us/library/system.guid.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)