c# 获取2到9之间的随机数,不要伪随机数
时间: 2024-04-15 12:31:02 浏览: 105
要获取一个真正的随机数,可以使用`System.Security.Cryptography`命名空间中的`RandomNumberGenerator`类。这是一个示例代码,用于在C#中获取2到9之间的真正随机数:
```csharp
using System;
using System.Security.Cryptography;
class Program
{
static void Main(string[] args)
{
int min = 2;
int max = 9;
int randomNum = GetRandomNumber(min, max);
Console.WriteLine("随机数: " + randomNum);
}
static int GetRandomNumber(int min, int max)
{
using (var rng = new RNGCryptoServiceProvider())
{
byte[] randomNumber = new byte[1];
rng.GetBytes(randomNumber);
double asciiValueOfRandomCharacter = Convert.ToDouble(randomNumber[0]);
double multiplier = Math.Max(0, (asciiValueOfRandomCharacter / 255d) - 0.00000000001d);
int range = max - min + 1;
double randomValueInRange = Math.Floor(multiplier * range);
return (int)(min + randomValueInRange);
}
}
}
```
这段代码使用了`RNGCryptoServiceProvider`类生成真正的随机数。它通过生成一个随机的字节序列,并将其转换为一个介于0和1之间的小数。然后,通过乘以范围的长度,并将其舍入为整数,得到2到9之间的随机数。
请注意,这种方法生成的是真正的随机数,而不是伪随机数。希望对你有所帮助!
阅读全文