C# 方法返回两个随机整数总是返回相同的整数两次
我知道如何在VB中做到这一点,但我用C编写代码,所以我需要弄清楚如何得到两个不同的radomized整数1-8,我似乎无法让它工作,我得到了相同的一次又一次,甚至我越努力。我读了很多,但我找不到更具体的帮助,因为大多数人只需要一个rnd号码,我可以做到…简单 我所编码的是你,它没有给我两个不同的数字C# 方法返回两个随机整数总是返回相同的整数两次,c#,random,C#,Random,我知道如何在VB中做到这一点,但我用C编写代码,所以我需要弄清楚如何得到两个不同的radomized整数1-8,我似乎无法让它工作,我得到了相同的一次又一次,甚至我越努力。我读了很多,但我找不到更具体的帮助,因为大多数人只需要一个rnd号码,我可以做到…简单 我所编码的是你,它没有给我两个不同的数字 public string GetFruitCombination() { Random fruitcombo = new Random(); int
public string GetFruitCombination()
{
Random fruitcombo = new Random();
int indexone = fruitcombo.Next(0, 8);
Random fruitcombotwo = new Random();
int indextwo = fruitcombotwo.Next(0, 8);
string firstfruit = m_fruit[indexone];
string secondfruit = m_fruit[indextwo];
return string.Format("{0}&{1}", firstfruit, secondfruit);
}
必须有一个更简单的方法来获得2个不同的rnd号码,对吗?所以我需要有人把我推向正确的方向
提前感谢您的任何想法和帮助
//关于不要创建第二个Random实例,只需使用同一个实例两次 默认种子是基于时间的,因此在如此快速地创建两个种子时,它们很有可能都具有相同的种子
public string GetFruitCombination()
{
Random fruitcombo = new Random(Environment.TickCount);
int indexone = fruitcombo.Next(0, 8);
int indextwo = fruitcombo.Next(0, 8);
string firstfruit = m_fruit[indexone];
string secondfruit = m_fruit[indextwo];
return string.Format("{0}&{1}", firstfruit, secondfruit);
}
虽然就我个人而言,我使用的是随机的静态版本,所以种子是在启动时设置的,然后每次使用都只是下一次。RNGCryptoServiceProvider示例中还有一个更好的随机变量谢谢!!我快疯了:用同样的随机数发生器。搜索随机数副本C.,例如InstanceFW:Java的随机默认种子实现比这更好,但仍有可能陷入退化的情况。。