[問題] 求亂數不重複的方法

作者: qoo27734266 (postgraduate)   2019-08-04 11:23:47
小弟我學C#一個月,目前需要取得25個數字且之間不得重複的亂數
目前自己想了一個方式是,一個袋子裡先裝滿25個亂數(會重複)
然後再拿袋子中的第一個亂數去比對剩下24個亂數,要是重複就重新裝袋子,直到袋子裡
沒有重複的亂數為止
另外設計CONTINUE的部分就是不要讓他比對到自己
https://i.imgur.com/KlNovSh.jpg
https://i.imgur.com/BIdEX0G.jpg
不知道為什麼這段程式碼去執行之後,仍然有重複的亂數在裏頭
作者: ssccg (23)   2019-08-04 11:40:00
你又沒有重裝(arr清空),只是一直繼續加入而已要保證不重複,應該用HashSet就好了
作者: qoo27734266 (postgraduate)   2019-08-04 12:39:00
https://i.imgur.com/tGTz1dC.jpg雖然沒有清空但我發現只有印出25個亂數 我也不知道為什麼
作者: Litfal (Litfal)   2019-08-04 15:31:00
你的寫法邏輯怪怪的,再好好想一想這種亂數後檢查是否重複的方法可以做,對初學者也是不錯的練習,但實務上用洗牌(shuffle)更簡單,效率也好得多還有你是怎麼學C#的? 現在應該沒什麼人用 ArrayList 了你比不出來的原因 就是因為你用了ArrayList,它會把你的int boxing,你比較時直接用==也沒有unboxing永遠是false

Links booklink

Contact Us: admin [ a t ] ucptt.com