c#

随机数c#如何生成高效

小樊
83
2024-08-29 04:59:04
栏目: 编程语言

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

0
看了该问题的人还看了