我知道如何在VB中执行此操作,但我在C#编码,所以我需要弄清楚如何获得两个不同的radomized整数(1-8),我似乎无法让它工作,我得到同样的结束和甚至更多我尝试更难。我已经阅读了很多,但我找不到更具体的帮助,因为大多数人只想要一个rnd号码,我可以做......很容易;)
我编码的是你没有给我两个不同的数字。
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数字吗?所以我需要有人帮助我朝着正确的方向前进!
提前感谢任何想法和帮助!!!
//此致
答案 0 :(得分:5)
不要创建Random
的第二个实例,只需使用相同的两个实例。
(默认种子是基于时间的,因此在如此快速地创建两个种子时,它们很可能都具有相同的种子。)
答案 1 :(得分:2)
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);
}
虽然我个人使用的是静态版本的Random,所以种子在启动时设置,然后每次使用时只需要Nexted。 RNGCryptoServiceProvider示例HERE
中还有一个更好的随机数