[问题] 求乱数不重复的方法

楼主: 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