1. 程式人生 > >根據不同的條件篩選隨機數

根據不同的條件篩選隨機數

學習和工作個人筆記,只為方便檢視

  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 }