[問題] 亂數不重複
這個問題想了滿久的
是有看到另一個分法
只是...還是想把這個搞懂!
這邊的解釋為...
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
討論串 (同標題文章)