랜덤 걷기

면접 대비

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

요약
왼쪽, 오른쪽, 제자리에 머무를 확률이 주어진 n번의 이동에서 도달한 최대 위치의 기댓값을 구한다.
난이도

보통10점 중 6점

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

문제

랜덤 걷기는 다음과 같이 동작한다. 매 걸음 전에 동전을 던져, 앞면이면 왼쪽으로 한 칸, 뒷면이면 오른쪽으로 한 칸 이동한다. 이런 걷기의 위치의 기댓값은 항상 00이다. 즉, 걸음을 아무리 많이 해도 평균 위치는 처음 시작한 지점과 같다.

이 문제의 동전은 조금 특이해서, 앞면과 뒷면이 나올 확률이 서로 다를 수 있고, 옆면으로 설 수도 있다. 왼쪽으로 갈 확률, 오른쪽으로 갈 확률, 그리고 동전을 던지는 횟수가 주어질 때, 걷는 동안 도달한 가장 오른쪽 위치의 기댓값을 구하는 프로그램을 작성하시오.

걷기는 위치 00에서 시작하며, 이 시작 위치도 가장 오른쪽(최댓값) 위치를 정할 때 포함되므로 답은 결코 음수가 되지 않는다.

입력

첫째 줄에 테스트 케이스의 수 PP가 주어진다. 각 테스트 케이스는 서로 독립적이다.

각 테스트 케이스는 한 줄로 이루어지며, 세 개의 수 nn, LL, RR이 순서대로 주어진다. nn (1≤n≤10001 \le n \le 1000)은 동전을 던지는 횟수이고, LL과 RR은 각각 왼쪽으로 갈 확률과 오른쪽으로 갈 확률이다 (0≤L≤10 \le L \le 1, 0≤R≤10 \le R \le 1, 0≤L+R≤10 \le L + R \le 1). 남은 확률 1−L−R1 - L - R은 동전이 옆면으로 설 확률이며, 이 경우 그 자리에 그대로 있는다.

출력

각 테스트 케이스마다 가장 오른쪽 위치의 기댓값을 소수점 넷째 자리까지 반올림하여 출력한다.

예제1

  1. 예제 1

    입력
    4
    1 0.5 0.5
    4 0.5 0.5
    10 0.5 0.4
    1000 0.5 0.4
    
    예상 출력
    0.5000
    1.1875
    1.4965
    3.9995