2010/01/02 00:32
액션스크립트 3 - 확률 구하는 알고리즘 프로그래밍/Actionscript3.02010/01/02 00:32
성공할 확률은 60%. 즉, 10 번 시도하면 6번은 성공한다는 말인데... 도대체 왜 자꾸 아이템을 날려 먹는것이냐고..
그래서 확률에 대해서 생각을 해보다가 함수를 만들었는데, 목적은 0< p < 1 의 값을 넘겨주면 그 확률(p)에 대한 Boolean 값을 반환하는 함수 이다.
즉, p = 0.1 이 되면 10번 중에 1 번 꼴로 true 값을 반환하는 함수이다.
(분명 어딘가에.. 아름다운 알고리즘이 있을테지만...무식한게 용감하다고...)
public function probability(percent:Number):Boolean
{
var divvy : Number = Math.min(1,percent);
divvy = Math.max(0,divvy);
var $i : uint = 0 ;
var divideValue : Number = 10 ;
while(divvy != Math.round(divvy))
{
$i++ ;
divvy = divvy * divideValue ;
}
var N : Number = Math.floor(Math.pow(divideValue,$i)*Math.random()) ;
return (N < divvy) ;
}
예를 들어 다음과 같이 이 함수를 실행하면..
for(var i:uint = 0 ; i < 100 ; i++ )
{
if(probability(0.03))
{
trace("성공") ;
}
}
성공 메세지는 평균 3회 정도 출력된다.
성공 메세지는 평균 3회 정도 출력된다.
'프로그래밍 > Actionscript3.0' 카테고리의 다른 글
| 액션스크립트 3 . 전구줄 효과 (0) | 2010/01/11 |
|---|---|
| 액션스크립트 3 - 확률 구하는 알고리즘 (0) | 2010/01/02 |
| Actionscript 3 , Isometric 과 PathFinding A*(astar) 알고리즘을 사용.. (0) | 2009/12/28 |
| Actionscript 3 원과 원 충돌 테스트 (0) | 2009/12/21 |
TAG 확률 알고리즘

댓글을 달아 주세요