// 두수 사이의 랜덤수 뽑아오기
function getRand(_n1:uint, _n2:uint):uint{
var min:uint = Math.min(_n1,_n2);
var max:uint = Math.max(_n1,_n2);
var _randomNum:Number;
var randomNum:Number;
do{
_randomNum = Math.random();
randomNum = Math.floor(_randomNum * Math.pow(10,max.toString(10).length));
//trace("randomNum : "+randomNum);
}while(randomNum>max || randomNum<min)
return randomNum;
}
//테스트 1~20사이의 랜덤수를 뽑아낸다.
for(var i:int;i<10;i++){
trace(getRand(1,20));
}
//두수(_n1, _n2) 사이에서 _cnt개 만큼 중복 안되게 수를 뽑아내는 함수 (로또등에 응용하면 됨 ㅋ)
function getNums(_n1:uint, _n2:uint, _cnt:uint):Array{
var arr:Array = new Array();
var tmp:uint;
var fnd:Boolean;
if((Math.abs(_n1-_n2)+1) - _cnt <0) {// 1~2 사이에서 3개를 뽑아라 이런식에 말도 안되는 입력을 받을경우 처리. -1 리턴
arr.push(-1);
return arr;
}
while(true){
tmp = getRand(_n1,_n2);
fnd = false;
for(var i:String in arr){
if(uint(arr[i]) == tmp) {
fnd=true;
break;
}
}
if(!fnd) arr.push(tmp);
if(arr.length>_cnt-1) break;
}
arr.sort( Array.NUMERIC ); // 정렬하여 숫자를 뽑아내고 싶을 경우에 사용하면 된다. 섞인채로 뽑고 싶다면 해당라인 제거.
return arr;
}
//로또 테스트
trace(getNums(1,45,6));
//나중에 껍데기만 만들어서 사용하시면 됩니다. 감사.
'etc > old' 카테고리의 다른 글
2008年 5月 19日 月曜日 (0) | 2008.05.20 |
---|---|
연쇄 이벤트 방지(이벤트 버블링) 예시 (0) | 2008.05.19 |
2008年 5月 16日 金曜日 (0) | 2008.05.16 |
2008-05-15 火曜日 (0) | 2008.05.15 |
C#에서 flash사용하기 (0) | 2008.05.14 |