gpt4 book ai didi

c# - .NET 中用于生成随机数的算法是什么?

转载 作者:行者123 更新时间:2023-12-03 21:09:29 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How is a random number generated at runtime?

(7 个回答)


7年前关闭。




当我使用 Random.Next()框架用来返回给我一个“伪随机”数的算法是什么?

我读了一点关于 Linear congruential generator .这是.NET 使用的技术吗?

编辑:

我看documentation关于 Random类,但这是一个著名的技术?这个算法有一个名字作为例子(线性同余生成器)?

最佳答案

检查 documentation 通常是值得的。对于这种事情:

The current implementation of the Random class is based on Donald E. Knuth's subtractive random number generator algorithm. For more information, see D. E. Knuth. "The Art of Computer Programming, volume 2: Seminumerical Algorithms". Addison-Wesley, Reading, MA, second edition, 1981.



这让我想到:

http://rosettacode.org/wiki/Subtractive_generator



还值得一提的是,来自同一个 MSDN 文档:

To generate a cryptographically secure random number suitable for creating a random password, for example, use a class derived from System.Security.Cryptography.RandomNumberGenerator such as System.Security.Cryptography.RNGCryptoServiceProvider.



具体来说,常规的 Random 算法很弱,因为第二个链接中的这个语句:

Anyone who observes i consecutive numbers can predict the next numbers



我没有你想象的那么大。

关于c# - .NET 中用于生成随机数的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com