C#随机数总出现重复的网上找了一个小程序但是还是出现重复的啊
发布网友
发布时间:2023-01-09 02:21
我来回答
共2个回答
热心网友
时间:2023-10-22 19:24
你需要使用随机因子来实现你的随机数
给你一个简单的盒子比较一下结果你就可以看出差别了
随机因子
private static int GetRandomSeed()
{
byte[] bytes = new byte[4];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}
执行代码,查看结果
StringBuilder randoms = new StringBuilder();
StringBuilder seeds = new StringBuilder();
for (int i = 0; i < 100; i++)
{
randoms.Append(new Random().Next(0, 100) + " ");
seeds.Append(new Random(GetRandomSeed()).Next(0, 100) + " ");
}
Console.WriteLine(randoms.ToString());
Console.WriteLine(seeds.ToString());
对比一下结果,你就明白Random(int seed)这个带参的作用了。
热心网友
时间:2023-10-22 19:24
刚给你写了个简单明了~~
从minNum到maxNum中获取count个不同的随机数:
static List<int> GetRandomNum(int count,int minNum,int maxNum)
{
List<int> ret=new List<int>();
Random r = new Random();
while (ret.Count<count)
{
int tmp = r.Next(minNum, maxNum);
if (!ret.Contains(tmp))
{
ret.Add(tmp);
}
}
return ret;
}