아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

연패 확률

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

요약
승률이 p인 독립적인 N번의 전투에서 L연패 이상이 한 번이라도 발생할 확률을 구합니다.
난이도

보통10점 중 5점

유형
확률, 동적 계획법
정답자
아직 제출이 없습니다

문제

게임 게시판에는 자기가 지는 이유를 게임 탓으로 돌리는 사람이 늘 있다. 현실성이 없다거나 AI가 치트를 쓴다는 주장이 대표적이다. 실제로는 실력이 모자란 경우가 대부분이다.

최근에도 새로 산 게임에서 컴퓨터가 치트를 쓴다고 주장하는 사람이 나타났다. 승률이 70%라고 표시된 전투에서 계속 진다는 것이다. 다른 사람이 편을 들면서 그런 전투를 다섯 번 연속으로 졌다고 덧붙였다. 그 확률은 (1−0.7)5=0.00243(1 - 0.7)^5 = 0.00243이니 정상적인 게임일 수 없다고 주장한다. 그러나 이 계산은 전투가 딱 다섯 번뿐일 때만 맞다. 한 판을 하는 동안 전투는 그보다 훨씬 많이 벌어지므로, 그런 연패가 어디선가 한 번이라도 나올 확률은 훨씬 크다. 그래서 직접 계산해 보기로 한다.

전투의 결과는 승리 아니면 패배이고, 이길 확률은 pp다. 전투를 NN번 치를 때 길이가 LL 이상인 연패가 적어도 한 번 나타날 확률을 구하라. 각 전투의 결과는 서로 독립이고, 난수 생성기는 공정하다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 이어지는 TT개의 줄에 각 테스트 케이스의 NN, LL, pp가 공백으로 구분되어 주어진다.

  • 0<T≤2000 < T \le 200
  • 0<N≤20000 < N \le 2000
  • 0<L≤N0 < L \le N
  • 0≤p≤1.00 \le p \le 1.0

출력

각 테스트 케이스마다 길이가 LL 이상인 연패가 나타날 확률을 한 줄에 하나씩 출력한다. 소수점 아래 아홉째 자리까지 반올림해 출력하고, 자릿수가 모자라면 0으로 채운다.

예제2

  1. 예제 1

    입력
    2
    5 5 0.7
    10 5 0.7
    
    예상 출력
    0.002430000
    0.010935000
    
  2. 예제 2

    입력
    3
    1 1 0.5
    10 10 0.4
    12 3 0.62
    
    예상 출력
    0.500000000
    0.006046618
    0.332725920