상품 알고리즘 문제

조회수 1215회

0.006% 의 확률로 1등이 0.03%의 확률로 2등이 0.2%의 확률로 3등이 나머지는 꽝

이라는 상품이 있었을때 어떻게 구현해야 할지 감이 안오네요

또, 어떻게 구현하면 에러 없이 오차범위 적게 만들 수 있을까요 ?

힌트나 검색 키워드나 참고 link나 블로그 좀 부탁드려요

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • 1부터 100000까지 숫자를 리스트나 DB에 넣어 놓습니다. 그리고 랜덤하게 선택된 값을 사용자에게 하나씩 던져 주면서 선택된 숫자는 사용된 숫자로 표시합니다. 리스트를 사용한다면 리스트에서 빼면 될거고, DB를 쓴다면 칼럼에 표시해도 될거구요. 방법은 많겠네요.

    그리고

    • 1~6까지 받은 사용자는 1
    • 7~36까지 받은 사용자는 2등
    • 37~236까지 받은 사용자는 3등
    • 나머지는 꽝

    이렇게 하면 되지 않을까요?

  • 100000개의 배열에 1을6개 2를 30개 3을 200개 넣고 나머지는 0으로 기본값을 두고 셔플 함수 등으로 돌려 섞고, 1에서 100000 중에서 랜덤 숫자를 뽑아 배열의 키값으로 선택해 나오는 숫자가 1이면 1등, 2면 2등 ... 이런식으로 구현해서 이벤트 등에 써본적이 있는데 오차가 크지 않았습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)