0
我在玩隨機生成隨機數,我可以讓他們生成,雖然我的console.writeline(randomList [i]);似乎循環兩次,然後顯示兩個結果,它應該只顯示每個循環的一個值,並且用戶必須按任意鍵才能得到下一個結果。有人可以對此有所洞察嗎?謝謝。隨機數顯示2個數字時,它應該只顯示一個
class Program
{
static void Main(string[] args)
{
GenerateRandomNumbers();
}
private static void GenerateRandomNumbers()
{
//Initialize an array
int[] randomList = new int[1000];
//Initialize an instance of random class
Random rnd = new Random();
// integer variable
int counter = 0;
while (counter < 1000)
{
//store random num
int random = rnd.Next(1, 1001);
if (Array.IndexOf(randomList, random) <= 0)
{
//store random number into Array
randomList[counter] = random;
counter++;
}
}
//output elements in Array
for (int i = 0; i < 1000; i++)
{
Console.WriteLine(randomList[i]);
Console.Read();
}
//output number of elements in Array
// Console.WriteLine(counter);
Console.Read();
}
一些鍵生成快速連續,這可能導致'Console.Read兩個字符使用到Console.ReadLine()() '快速返回兩次。 – 2011-04-23 01:22:17
至於你的隨機數生成,你似乎正在生成從1到1000的數字,以填充數組中的1000個插槽,檢查一路上的碰撞。你會發現碰撞的機率每增加一次就會上升到接近100%。更好的方法是預先簡單地創建1000個值,然後執行隨機洗牌。沒有碰撞,性能更好。研究諸如Fisher-Yates等算法。 – 2011-04-23 01:29:36