Re: [問題] 用c產生一個亂數矩陣並檢查是否重複

看板C_and_CPP (C/C++)作者 (討戰是興趣)時間16年前 (2009/10/08 02:45), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串2/11 (看更多)
玩賓果遊戲嗎 srand(time(NULL)); a[0] = 1 + rand() % 25; for(i=1; i<25; i++) { label: a[i] = 1 + rand() % 25; for(j=0; j<i; j++) { if(a[i] == a[j]) goto label; } } 應該有更好的方法吧~ 高手請指正 我也是新手 加油 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.15.164

10/08 02:53, , 1F
poker 演算法是將 1-25 全都放到 0-24 的 array
10/08 02:53, 1F

10/08 02:54, , 2F
再用 rand 0-24 ,去交換其 index,如此便不用再去判斷
10/08 02:54, 2F

10/08 02:54, , 3F
這樣的程式其實可以不要用到goto的....:)
10/08 02:54, 3F

10/08 02:54, , 4F
所產生的亂數是否重覆,如果有產生 10^5 個亂數不重覆
10/08 02:54, 4F

10/08 02:54, , 5F
效果應該還蠻顯著的
10/08 02:54, 5F
嗯嗯 大家都好厲害喔 請問一下喔 演算法都是自己想出來的嗎?? 還是有哪些學習的管道阿 謝謝 ※ 編輯: ioioioioioio 來自: 220.132.15.164 (10/08 02:58)

10/08 12:50, , 6F
閉上眼睛就會了
10/08 12:50, 6F

10/08 13:06, , 7F
其實我覺得有些演算法可能要多研究嘗試看書找資料, 但也
10/08 13:06, 7F

10/08 13:06, , 8F
有些方法是日常生活中的作法可以直接硬用的; 解問題不外
10/08 13:06, 8F

10/08 13:07, , 9F
乎靠過往的經驗來組合應用, 再不然就是神來一筆的靈感XD
10/08 13:07, 9F
文章代碼(AID): #1ApE79r6 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1ApE79r6 (C_and_CPP)