상품 알고리즘 문제


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

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

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

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

  • 2016년 04월 12일에 작성됨
    웹개발자

조회수 203


2 답변


좋아요
1
싫어요
채택취소하기

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

그리고

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

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

  • 2016년 04월 12일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

  • 좋은 팁 감사합니다! ㅎㅎㅎ    swiftruby   2016.4.14 10:20     

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

  • 2016년 04월 12일에 작성됨

  • 좋은 팁 감사합니다!    swiftruby   2016.4.14 10:20     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close