阅读量:0
在C#中,生成随机数的高效方法是使用System.Random
类或者System.Security.Cryptography.RNGCryptoServiceProvider
类
- 使用
System.Random
类:
using System; class Program { static void Main() { // 创建一个Random实例 Random random = new Random(); // 生成一个0到99之间的随机整数 int randomNumber = random.Next(100); Console.WriteLine("随机数: " + randomNumber); } }
- 使用
System.Security.Cryptography.RNGCryptoServiceProvider
类:
using System; using System.Security.Cryptography; class Program { static void Main() { // 创建一个RNGCryptoServiceProvider实例 RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); // 生成一个0到99之间的随机整数 int randomNumber = GetRandomInt(rng, 100); Console.WriteLine("随机数: " + randomNumber); } static int GetRandomInt(RNGCryptoServiceProvider rng, int maxValue) { if (maxValue <= 0) throw new ArgumentOutOfRangeException(nameof(maxValue)); int result; byte[] randomBytes = new byte[4]; do { rng.GetBytes(randomBytes); result = BitConverter.ToInt32(randomBytes, 0) & Int32.MaxValue; } while (result >= maxValue * (Int32.MaxValue / maxValue)); return result % maxValue; } }
注意:RNGCryptoServiceProvider
类生成的随机数比System.Random
类更加安全,但可能会稍微慢一些。如果你需要生成大量的随机数,可以考虑使用RNGCryptoServiceProvider
类。