怎麼讓亂數不重複

看板C_Sharp作者 (董小妤)時間16年前 (2009/11/10 17:15), 編輯推噓5(505)
留言10則, 5人參與, 最新討論串1/2 (看更多)
C# Random rd = new Random(); for (i=0;i<20;i++) { x=rd.Next(a,b); Console.Write(" {0}",x); } 如何讓亂數不重複 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.195.96

11/10 19:57, , 1F
自己記起來,然後去判斷...
11/10 19:57, 1F

11/10 22:01, , 2F
換種想法吧,先丟有規律的陣列
11/10 22:01, 2F

11/10 22:02, , 3F
再亂數排序這個陣列(shuffle演算法)
11/10 22:02, 3F

11/10 22:02, , 4F
這樣一定不會重複
11/10 22:02, 4F

11/11 00:12, , 5F
推洗牌法
11/11 00:12, 5F

11/11 01:09, , 6F
Kelunyang,你的意思是,先把(a,b)之間的所有數字列出來
11/11 01:09, 6F

11/11 01:10, , 7F
然後random洗牌,在取出來,這樣就不會重複,對不對?
11/11 01:10, 7F

11/11 15:27, , 8F
對啊,這樣不是比較單純嗎?還要紀錄亂數有沒有發過浪費
11/11 15:27, 8F

11/11 15:27, , 9F
時間
11/11 15:27, 9F

11/11 18:10, , 10F
先建table,然後隨機抓出來
11/11 18:10, 10F
文章代碼(AID): #1A-IzAdz (C_Sharp)
文章代碼(AID): #1A-IzAdz (C_Sharp)