最近在寫撲克牌產生,就一定會用到隨機不重覆序列
底下提供一個最簡單的 不重覆隨機的方法
就是拿自己跟別人交換 假設 陣列有 1-10 , 則 拿 1 與 隨機一數交換 , 依序 1 ,2 ,3 .... 到 10;
在過程中 若遇到跟 自己一樣 則加 1 .
for (var i:Number = 1; i<_len; i++) {
rand = Math.floor(Math.random() * _len);
if(rand==i)rand+=1;
temp = p_array[i];
p_array[i] = p_array[rand];
p_array[rand] = temp;
_array = p_array;
}
最後得到的 _array 就是不重覆隨機數列 !
以下是網路上提供的方法2008---------------------------------------------------------------------------------------------------------------------------
方法1 //as2.0-------------------------------------------------------------------------------------------------------------------------------------------
my_array=new Array();
n=5;
for(var i=0;i
my_array[i]=i;
}
my_array.sort(function(){return random(3)});
//as3.0-------------------------------------------------------------------------------------------------------------------------------------------
var my_array:Array=new Array();
var n:Number=5;
var i:Number=0;
for(i=0;i
my_array[i]=i;
}
my_array.sort(function(){return Math.floor(Math.random()*10)});
方法2 -------------------------------------------------------------------------------------------------------------------------------------------
my_array=new Array();
n=5;
for(var i=0;i
}
for(var i=0;i
var tmp2=my_array[i];
my_array[i]=my_array[tmp1];
my_array[tmp1]=tmp2;
}
全站熱搜
留言列表