📄 myrandom.as
字号:
/*
随机数 相关的类
*/
package com.dmh2002.util{
public class MyRandom {
/*
* 生成一个用于url防缓存的随机参数
* 随机数大小范围为0-10000
* 返回一个 uint
*/
public static function randomUrlVariable():uint {
return Math.round(Math.random() * 10000);
}
/*
* 给入一个数量,给出一个数组
* 数组中为一组数字,数字自0开始至 (数量-1)
* 数组为一个随机数组
* trace(random_num(3)) //1,2,0
* trace(random_num(14)) //6,4,12,0,2,3,5,10,9,11,1,7,13,8
*/
public static function randomNumbersArray(nums:uint):Array {
var _array:Array = new Array ();
var i:uint = 0;
while (i < nums) {
_array[i] = i;
i++;
}
return (randomArray(_array));
}
/*
* 给入一个数量,给出一个数组
* 数组中为一组数字,数字自0开始至9
* 数组中的数量为 参数指定的数量,最大不能超过10
*/
public static function randomNumbersFormSingleNumbersArray(nums:uint):Array {
nums=Math.min(nums,10);
nums=Math.max(nums,0);
var _formArray:Array=randomNumbersArray(10);
var _array:Array=new Array(nums);
for (var i:uint=0; i<nums; i++) {
_array[i]=_formArray[i];
}
return _array;
}
/*
* 将作为 参数 传入的 数组
* 返回一个打乱顺序的数组
* 例如 var _array:Array=new Array(4,5,6)
* 返回 5,6,4
*/
//给入一个数组,返回一个打乱顺序的数组
public static function randomArray(inputArray:Array):Array
{
var cf:Function = function ():int
{
var r:Number = Math.random() - 0.5;
if (r < 0)
{
return -1;
}
else
{
return 1;
}
}
var resultArray:Array = MyArray.clone(inputArray) as Array;
resultArray.sort(cf);
return resultArray;
}
//
// public static function randomArray(array:Array):Array {
// var t:Array = array.concat();
// var $lim:uint=array.length;
// var l:Number = t.length;
// var e:Number = ($lim && $lim < (l-1)) ? ($lim+1) : l;
//
// while (--e) {
// var r:Number = randomBetweenTwoNumbers(l--);
// t[r] = t[l] | (t[l] = t[r]) & 0;
// }
// return t.slice(- $lim);
// }
/*
* 从参数ary(数组)中随机返回一个 数组项
* 例如 var _array:Array=new Array(4,5,6)
* 返回 5或者6或者4
*/
public static function randomExtract(ary:Array):* {
return (ary[Math.floor(Math.random() * ary.length)]);
}
/*
* 给入2个数字
* 返回从 数字1 到 数字2 之间的数组
* 并且为随机
* trace(random_num2(4,8))
* 返回 4,6,7,5,8
*/
public static function randomBetweenTwoNumbersArray(n1:int, n2:int):Array {
var _array:Array = new Array ();
var i:int = n1;
while (i<= n2) {
_array.push(i);
i++;
}
return randomArray(_array);
}
/**
* 生成一个介于 参数1 和 参数2 之间的随机数,精度为参数3
* @param minimum 最小值
* @param maximum 最大值,如果缺少默认为0
* @param 精度 默认值为自然数
* @return 一个随机数
* randomBetweenTwoNumbers(0,100)//0-100的随机数
* randomBetweenTwoNumbers(0,100,5)//0-100的5的倍数随机数
* randomBetweenTwoNumbers(-1,1,.05)//-1至1的随机数,精确到百分之5
*/
public static function randomBetweenTwoNumbers(nMinimum:Number,nMaximum:Number=0,nRoundToInterval:Number=1):Number {
// If the minimum is greater than the maximum, switch the two.
if (nMinimum > nMaximum) {
var nTemp:Number=nMinimum;
nMinimum=nMaximum;
nMaximum=nTemp;
}
// Calculate the range by subtracting the minimum from the maximum. Add
// 1 times the round to interval to ensure even distribution.
var nDeltaRange:Number=nMaximum - nMinimum + 1 * nRoundToInterval;
// Multiply the range by Math.random(). This generates a random number
// basically in the range, but it won't be offset properly, nor will it
// necessarily be rounded to the correct number of places yet.
var nRandomNumber:Number=Math.random() * nDeltaRange;
// Add the minimum to the random offset to generate a random number in the correct range.
nRandomNumber+= nMinimum;
// Return the random value. Use the custom floor( ) method to ensure the
// result is rounded to the proper number of decimal places.
return MyNumber.myFloor(nRandomNumber,nRoundToInterval);
}
/*
* 将字符串打乱
* trace(randomString("我们的爱")) //的我爱们
*/
public static function randomString(str:String):String {
var _local4:Array = new Array ();
var _local2:uint = 0;
while (_local2 < str.length) {
_local4.push(str.charAt(_local2));
_local2++;
}
_local4 = randomArray(_local4);
str = _local4.join("");
return str;
}
//
//
//
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -