작성자 | lilly1987 | ||
---|---|---|---|
작성일 | 2018-10-07 18:02:35 KST | 조회 | 1,870 |
제목 |
효과 있는지 모르는 최적화 가이드 - 비중 기준으로 확률 뽑기
|
아래에 확률로 써있는 단어를 비중으로 교체합니다.
용어상 비중이란 말이 더 맞아요.
---
예를들어 상대 수치 비율로
저글링은 100 비중으로
마린은 50 비중으로
질럿은 25 비중으로 뽑히게 하고 싶다.
할 경우 입니다.
다시말해 저글링이 100마리 나올동안 질럿은 25마리만 나오게 하고싶다고 할 경우입니다.
이걸 최대 공약수로 나누어 바꾸면
4:2:1 입니다.
근데 아래 예제는 그냥 유닛 만드는것 없이 디버그 메세지로만 대체함
----
일단 비중률갑을 만들어 줍시다.
만약 유닛뽑기를 만들려면 "유닛 유형" 배열도 만드시고 유닛 유형까지 같이 설정하셔야 됩니다.
설명을 하자면 위 초기화 완료후 아래 표처럼 됩니다.
배열 번호 | 비중 | 비중 누적 |
|
0 | 10 | 10 |
|
1 | 20 | 30 |
|
2 | 30 | 60 |
|
3 | 40 | 100 |
|
4 | 50 | 150 |
|
비중 합계값은 150으로 들어가구요.
---
실제로 봅기 과정의 트리거 입니다.
실제 작동시 예제를 들자면
뽑기값 : 55일 경우
지역변수 | 배열 번호 | 비중 | 비중 누적 | 비교 결과 |
0 | 0 | 10 | 10 | false, 55<10 |
1 | 1 | 20 | 30 | false, 55<30 |
2 | 2 | 30 | 60 | true, 55<60 뽑기 작동 ,반복 정지 |
3 | 40 | 100 |
| |
4 | 50 | 150 |
|
배열 번호 2번이 뽑혔습니다.
---
그리고 뽑힌 갯수 누적을 해보면
얼추 맞는군요.
----
최적화 하기
비중 50인것과 비중 10인것중 어느게 뽑히는 횟수가 많을까요?
50인게 많겠죠.
그러니 뽑힐 비중이 높은걸 배열번호 앞부분에 놓는게 좋습니다.
배열 번호 | 비중 | 비중 누적 |
|
0 | 50 | 50 |
|
1 | 40 | 90 |
|
2 | 30 | 120 |
|
3 | 20 | 140 |
|
4 | 10 | 150 |
|
뭐 성능 차이가 별로 안나겠지만..
트리거 구성에 따라 역순 배열 해야할수도 있어요.
출처: http://lilly1987.tistory.com/797 [릴리의 지극히 개인적인 블로그]
|
||
|
|
||
|
|
||
|
© PlayXP Inc. All Rights Reserved.