[問題] 亂數不重複

看板Flash作者時間18年前 (2006/11/24 14:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
這個問題想了滿久的 是有看到另一個分法 只是...還是想把這個搞懂! 這邊的解釋為... var i, j, rand, chek; var post = new Array(16); //設一個陣列post //--------------------------------------- for (i=0; i<=15; i++) { post[i] = 0; } //全部歸零...(是否存在應該無關) //------------------------------------ for (i=0; i<=15; i++) { chek = 0; rand = int((15)*Math.random()+1); trace("new "+rand); //以上這一段為取一個變數 並且將chek歸零 //---------------------------------------- for (j=0; j<i; j++) { //這邊是要判斷 這次產生的亂數是否有重覆過 trace(post[j]); if (post[j] == rand) { trace("hit "+rand); chek = 1; //而 chek放在這個判斷式(有重覆)裡面 //一開始歸零 若一直到這個迴圈結束後 chek還是等於零 //則代表沒有重複過 break; } } //---------------------- if (chek == 0) { post[i] = rand; //沒有重複過就直接把直放到陣列中 trace(" "); } else { ●●● 問題在這邊 如果有重覆過 則重新再取一個亂數再判斷一次 我是用i--; 就是固定在上一個陣列元素中 可是整個就掛掉了... 不知道是哪個邏輯有錯... } } //---------------------------------------------- trace("-------"); for (i=0; i<=15; i++) { trace(post[i]); //印出陣列的資料 } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 222.157.72.141
文章代碼(AID): #15PfS4wM (Flash)
文章代碼(AID): #15PfS4wM (Flash)