随机数c#如何生成高效

avatar
作者
筋斗云
阅读量:0

在C#中,生成随机数的高效方法是使用System.Random类或者System.Security.Cryptography.RNGCryptoServiceProvider

  1. 使用System.Random类:
using System;  class Program {     static void Main()     {         // 创建一个Random实例         Random random = new Random();          // 生成一个0到99之间的随机整数         int randomNumber = random.Next(100);          Console.WriteLine("随机数: " + randomNumber);     } } 
  1. 使用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类。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!