自制随机数

发布时间 2023-08-23 11:23:46作者: 孤沉

我昨天发现了一个好玩的东西,今天打算记录下来
我们在写随机数的时候,一般会用到Random

 /// <summary>
 /// 产生重复的随机数
 /// </summary>
 public static void Print1()
 {
     for (int i = 0; i < 10; i++) 
     {
         Random rd = new Random();
         var rds = rd.Next(1, 10);
         Console.WriteLine(rds);
     }
 }

但是,你转念一想,当这个10个数字并行的时候,是不是就相当于随机数
所以我有了以下代码

 public static void Print2() 
 {
     Parallel.For(0, 10, delegate (int i)
     {
         Console.WriteLine(i);                //打印0-10的无序整数
     });
 }

Parallel结合Enumerable更好玩

  public static void Print3()
  {
      //Enumerable结合Parallel
      var lists = Enumerable.Range(1, 10).ToList();
      Parallel.For(0, lists.Count, i =>
      {
          Console.WriteLine($"索引{i},{lists[i]}");
      });
  }
 int[] nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };或者List<int>写都比较麻烦
 var lists = Enumerable.Range(1, 10).ToList();写简单一点