1 public static int randRange(int min, int max) 2 { 3 int randNumber = Random.Range(min, max+1); 4 return randNumber; 5 }
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
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 }
原文:https://www.cnblogs.com/dream-cat-fan/p/10041299.html