将原有数组打乱:
代码
var arr:Array = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6]
disorder(arr);
trace(arr)
function disorder(arr:Array):Array
{
var len:uint = arr.length;
var cache:*, ti:uint;
//将i位置于随即的ti位置互换
for (var i:uint = 0; i < len; i++)
{
ti = int(Math.random() * len);
cache = arr[i];
arr[i] = arr[ti];
arr[ti] = cache;
}
while (--i >= 0)
{
ti = int(Math.random() * len);
cache = arr[i];
arr[i] = arr[ti];
arr[ti] = cache;
}
return arr;
}
disorder(arr);
trace(arr)
function disorder(arr:Array):Array
{
var len:uint = arr.length;
var cache:*, ti:uint;
//将i位置于随即的ti位置互换
for (var i:uint = 0; i < len; i++)
{
ti = int(Math.random() * len);
cache = arr[i];
arr[i] = arr[ti];
arr[ti] = cache;
}
while (--i >= 0)
{
ti = int(Math.random() * len);
cache = arr[i];
arr[i] = arr[ti];
arr[ti] = cache;
}
return arr;
}
创建一个随机数组:
代码
function RandomArray(n:int):Array
{
var my_array:Array = new Array();
var i:int = 0;
for (i = 0; i < n; i++)
{
my_array.push(i);
}
for (i = 0; i < n; i++)
{
var tmp1:int = Math.random() * n;
var tmp2:int = my_array[i];
my_array[i] = my_array[tmp1];
my_array[tmp1] = tmp2;
}
return my_array
}
trace(RandomArray(35));
//随机生成 35个 在1到35 之间的 不重复的数字
//避免对数组消耗大的操作 比如push、splice 就可以提高速度了
{
var my_array:Array = new Array();
var i:int = 0;
for (i = 0; i < n; i++)
{
my_array.push(i);
}
for (i = 0; i < n; i++)
{
var tmp1:int = Math.random() * n;
var tmp2:int = my_array[i];
my_array[i] = my_array[tmp1];
my_array[tmp1] = tmp2;
}
return my_array
}
trace(RandomArray(35));
//随机生成 35个 在1到35 之间的 不重复的数字
//避免对数组消耗大的操作 比如push、splice 就可以提高速度了
比较两个方法~~