随机数c#如何生成高效

   2024-09-30 8510
核心提示:在C#中,生成随机数的高效方法是使用System.Random类或者System.Security.Cryptography.RNGCryptoServiceProvider类使用System.R

在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类。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号