快速生成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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-18
  • 2021-10-29
  • 2021-12-09
  • 2021-06-02
  • 2021-10-29
  • 2021-08-16
猜你喜欢
  • 2021-08-12
  • 2022-12-23
  • 2021-04-07
  • 2021-11-03
  • 2021-08-16
  • 2021-08-16
相关资源
相似解决方案