• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

랜덤 확률 계산

23.06.24 16:16 작성 조회수 643

0

안녕하세요. 관련 프로젝트 클론 코딩하던 중, 질문이 생겨서 적어봅니다.

목표 : 누적확률(시행마다 가중치 X) 없이 독립시행으로, 확률에 따른 이벤트 발생

#과정 1.

float _rand = Random(0f,1f)

=====
#과정2.

0.5f를 기준값으로 계산

ex)시행 1: _rand = 0.6f

시행 2: _rand : 0.2f

=> 시행 1 -> 1 - 0.6 = 0.4f

=>시행 2 -> 0.5보다 낮으므로 0.2f

=====

#과정3.

2에서 계산된 _rand값을 기준으로 해당되는 확률 테이블의 데이터를 가져올 때,

시행 1 -> 0.4f이므로, acqPercent 0.4 이하인 요소들을 전부 List로 끌고 온 뒤, 그 List에서 랜덤으로 뽑음

=====
질문 :

이러면 처음에 rand로 나온 값이 의미가 없어지고 rand 미만의 요소들이 담긴 list에서, 1/list 갯수 만큼의 확률로 계산되는거 같은데 ( 원래 설정한 0.005, 0.1 이런건 무시되고 )

아예 확률표를 잘못 작성했다던가 계산법이 잘못된거 같은데 잘 모르겠습니다 ㅠㅠ

참고자료 : 엑셀 표 ( 총 확률은 0.7 , 나머지 0.3은 아무것도 발생시키지 않도록 설정)

14231.PNG

답변 1

답변을 작성해보세요.

1

아이템 드랍 공식은 스스로 판단해서 만들어보시기 바랍니다.
일반적으로 총합이 1인 데이터가 있다면, 구간을 만드는게 가장 쉬운데요.
ex) 0.4 0.3 0.3 확률로 아이템이 떨어진다면,
[0.0~0.4] / [0.4~0.7] / [0.7~1.0] 이렇게 3 구간으로 나누고
랜덤을 0~1 사이로 굴리면 3 구간 중 하나엔 들어갈테니 그 아이템을 떨구는 것이죠.