作者showumybest (哇系阿贵꠩
看板Flash
标题[问题] 乱数不重复
时间Fri Nov 24 15:08:57 2006
这个问题想了满久的
是有看到另一个分法
只是...还是想把这个搞懂!
这边的解释为...
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