C#中生成不重複隨機數
阿新 • • 發佈:2019-02-03
如果只是生成一個隨機數,C#中的Random函式就足夠用了,但如果需要生產若干個隨機數,且這些數不能重複,就需要自己來寫相應的方法了。
1.使用List<int>來儲存隨機數,List.Contain方法來判斷生成的隨機數是否已經存在
以在1-10中取5個不重複的隨機數為例
2.在一個List中中儲存所有可能的數,每次隨機取出一個,並在List中把它移除public List<int> Generate1() { Random random = new Random(); List<int> result = new List<int>(); int temp; while (result.Count < 5) { temp = random.Next(0, 11); if (!result.Contains(temp)) { result.Add(temp); } } return result; }
以在1-10中取5個不重複的隨機數為例
public List<int> Generate2() { List<int> all = new List<int>(); List<int> result = new List<int>(); Random random = new Random(); for (int i = 0; i < 11; i++) { all.Add(i); } for (int j = 0; j < 5; j++) { int index = random.Next(0, all.Count - 1); result.Add(all[index]); all.RemoveAt(index); } return result; }