根据不同的条件筛选随机数

学习和工作个人笔记,只为方便查看

  1. 普通随机数
    1   public static int randRange(int min, int max) 
    2      {
    3         int randNumber = Random.Range(min, max+1);
    4         return randNumber;
    5     }
  2. 在一定范围内,随机的值不在某数组中(注意使用范围,避免死循环)
     1 public static int randRangeNotIn(int min, int max, int[] array) 
     2 {
     3     int randNumber = 0;
     4     bool flag = false;
     5 
     6     while (true) 
     7     {
     8         flag = false;
     9         randNumber = Random.Range(min, max+1);
    10         for (int i = 0; i < array.Length; i++) 
    11         {
    12             if (randNumber == array[i]) 
    13             {
    14                 flag = true;
    15                break;
    16             }
    17         }
    18 
    19         if (flag == false)
    20             break;
    21      }
    22 
    23     return randNumber;
    24 }
    25
  3. 在一个范围内产生n个随机数(必须满足:max - min + 1 > count)
     1 public static int[] randArray(int min, int max, int count) 
     2 {
     3       ArrayList array = new ArrayList();
     4       if (count <= (max + 1)) 
     5       {
     6           while (array.Count < count)
     7           {
     8                 int randNumber = Random.Range(min, max + 1);
     9                 bool flag = true;
    10                 for (int i = 0; i < array.Count; i++)
    11                 {
    12                       if (randNumber == (int)array[I])
    13                       {
    14                            flag = false;
    15                            break;
    16                       }
    17                 }
    18                 if (flag == true)
    19                 {
    20                       array.Add(randNumber);
    21                 }
    22             }
    23        }
    24 
    25     int[] v = new int[array.Count];
    26     array.CopyTo(v);
    27     return v;
    28 }                    

在一个范围内随机n个值,这n个值,不在某个数组中(注意适用范围,避免死循环)

 1 public static int[] randArrayCountNotIn(int min, int max, int count, int[] oldarray) {
 2     ArrayList array = new ArrayList();
 3     if (count <= (max + 1)) {
 4         while (array.Count < count)
 5         {
 6             int randNumber = Random.Range(min, max + 1); ;
 7             int flag = true;
 8             for (int i = 0; i < array.Count; i++)
 9             {
10                 if (randNumber == (int)array[i])
11                 {
12                     flag = false;
13                     break;
14                 }
15             }
16             for (int i = 0; i < oldarray.Length; i++)
17             {
18                 if (randNumber == oldarray[i])
19                 {
20                     flag = false;
21                     break;
22                 }
23             }
24             if (flag == true)
25             {
26                 array.Add(randNumber);
27             }
28         }
29     }
30     int[] v = new int[array.Count];
31     array.CopyTo(v);
32     return v;
33 }

猜你喜欢

转载自www.cnblogs.com/dream-cat-fan/p/10041299.html
今日推荐