판돈 올리기

시간 제한1초메모리 제한128 MB

요약
라운드별 승리 확률이 주어질 때, 상한이 있는 마틴게일 전략이 k라운드부터 m라운드 사이 어느 시점에 이익을 내는 확률을 구한다.
난이도

보통10점 중 6점

유형
확률, 동적 계획법, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

스탠은 크라운 앤드 앵커(Crown & Anchor)라는 도박 게임을 즐긴다. 이 게임에서는 크라운(Crown), 앵커(Anchor), 클럽(Club), 다이아몬드(Diamond), 하트(Heart), 스페이드(Spade)의 여섯 무늬 가운데 하나에 돈을 건다.

바퀴를 돌리면 세 개의 무늬가 나타나는 자리에서 멈춘다(세 무늬가 서로 같을 수도 있다). 스탠이 건 무늬가 그 세 자리에 nn번 나타났다면, 그는 판돈을 돌려받고 여기에 더해 판돈의 nn배를 받는다. 즉 순이익은 판돈의 nn배이다. 건 무늬가 한 번도 나타나지 않으면 판돈을 잃는다.

스탠은 올리에게 내기를 걸었다. 크라운 앤드 앵커로 돈을 딸 수 있다는 것이다. 올리는 스탠이 운 좋게 처음 몇 판을 이길 수도 있음을 알기에, 내기에서 이기려면 스탠이 적어도 kk판을 마친 뒤에 이익을 보고 있어야 한다고 요구한다. 또한 승부를 빨리 내기 위해, 스탠은 늦어도 mm판 안에 이익을 내야 한다.

스탠에게는 비책이 있다. 바로 몬테카를로(마틴게일) 베팅 전략이다. 먼저 최소 판돈을 건다. 이기면 이익을 챙기고 다시 최소 판돈을 건다. 지면 판돈을 두 배로 올려서, 다음 판에 이기면 그동안의 손실을 만회하고 이익까지 남기도록 한다. 이 두 배 늘리기는 이길 때까지 계속된다. 이길 때마다 이익을 챙기고 다시 최소 판돈부터 시작한다.

하지만 도박장은 이 전략에 대비해 하우스 리밋 ll(한 판에 걸 수 있는 최대 판돈)을 두었다. 그래서 스탠은 전략을 조금 바꾼다. 판돈을 두 배로 올리면 하우스 리밋을 넘게 되는 경우에는, 두 배로 올리는 대신 최소 판돈부터 다시 시작하여 나중에 손실을 만회하려 한다.

최소 판돈은 11이다. 이 전략을 따를 때, kk판을 마친 시점부터 mm판을 마친 시점까지의 어느 순간이든 순이익이 양수가 되면 스탠이 내기에서 이긴다. 스탠이 내기에서 이길 확률을 구하여라.

입력

첫 줄에 테스트 케이스의 개수 nn이 주어진다. 이후 각 테스트 케이스는 세 정수 kk, mm, ll이 공백으로 구분되어 한 줄에 주어진다. 각각 이익을 보고 있어야 하는 최소 판 수, 최대 판 수, 하우스 리밋을 뜻한다.

  • 0<k<m≤300 < k < m \le 30
  • 2≤l≤10002 \le l \le 1000
  • 최소 판돈은 11이다.

출력

각 테스트 케이스마다 스탠이 내기에서 이길 확률을 소수점 아래 넷째 자리까지 반올림하여 한 줄에 출력한다.

힌트

바퀴에는 멈출 수 있는 자리가 2828개 있고, 서로 다른 무늬 조합은 1414가지이며 각 조합은 바퀴에 두 번씩 나타난다. 1414가지 조합은 다음과 같다.

  • 세 무늬가 모두 같은 조합 66가지(무늬마다 하나씩)
  • 두 무늬만 같은 조합 66가지
  • 세 무늬가 모두 다른 조합 22가지

이 배치는 대칭적이어서 어떤 무늬를 고르더라도 그 무늬의 등장 횟수 분포는 같다. 고른 무늬를 기준으로 자리를 세어 보면 다음과 같다.

  • 33번 등장: 22자리
  • 22번 등장: 22자리
  • 11번 등장: 44자리
  • 등장하지 않음: 2020자리

따라서 한 판에서 건 무늬가 등장하는 횟수의 확률은 각각 다음과 같다.

P(0)=2028,P(1)=428,P(2)=228,P(3)=228P(0) = \frac{20}{28},\quad P(1) = \frac{4}{28},\quad P(2) = \frac{2}{28},\quad P(3) = \frac{2}{28}

예제2

  1. 예제 1

    입력
    1
    3 4 10
    
    예상 출력
    0.5835
    
  2. 예제 2

    입력
    2
    1 2 2
    5 10 1000
    
    예상 출력
    0.4898
    0.9140