快速生成大量指定位數的不重複隨機整數

快速生成50W個16位的不重複的隨機整數

經測試,生成50W個不到1秒,500W兩秒左右,1000W以上的話可能會內存溢出

            Random rnd = new Random();
            HashSet<long> hs = new HashSet<long>();
            for (int i = 0; i < 500000; i++)
            {
                long l = (long)((rnd.NextDouble() + rnd.Next(1, 9)) / 10 * 9999999999999999);
                if (!hs.Add(l))
                    i--;
            }
            Console.ReadLine();

 

用來控制生成的小數爲0.1~0.999999之間

(rnd.NextDouble() + rnd.Next(1, 9)) / 10

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章