快速生成大量指定位数的不重复随机整数
快速生成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