만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

동전 던지기

시간 제한2초메모리 제한512 MB

요약
앞면 확률이 [0,1]에서 독립적으로 균등분포인 두 동전을 던져 얻은 앞면 횟수가 주어질 때, 첫 번째 동전의 확률이 더 작을 확률을 계산한다.
난이도

보통10점 중 7점

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

문제

어떤 기계는 앞면이 나올 확률이 pp이고 뒷면이 나올 확률이 1−p1-p인 동전을 만든다. pp는 0과 1 사이의 수이고, 기계에 pp 값을 직접 설정할 수는 없다. 동전을 만들 때마다 pp가 무작위로 정해지며, 구간 [0,1][0, 1]에서 균등분포를 따른다.

이 기계로 동전을 두 개 만들었다. 동전 1의 확률은 pp, 동전 2의 확률은 qq이다. pp와 qq는 모두 [0,1][0, 1]에서 균등분포를 따르고 서로 독립이며, 실제 값을 알 방법은 없다.

동전 1을 n1n_1번 던졌더니 앞면이 m1m_1번 나왔고, 동전 2를 n2n_2번 던졌더니 앞면이 m2m_2번 나왔다. 이 관측 결과가 주어졌을 때 p<qp < q일 확률을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT (1≤T≤1000001 \le T \le 100000)가 주어진다.

다음 TT개의 줄에 테스트 케이스가 한 줄씩 주어진다. 각 줄에는 n1n_1, m1m_1, n2n_2, m2m_2가 공백으로 구분되어 주어진다. (1≤n1,n2≤10001 \le n_1, n_2 \le 1000, 0≤m1,m2≤500 \le m_1, m_2 \le 50, m1≤n1m_1 \le n_1, m2≤n2m_2 \le n_2)

출력

각 테스트 케이스마다 한 줄에 p<qp < q일 확률을 출력한다. 소수점 아래 일곱째 자리에서 반올림해 소수점 아래를 정확히 여섯 자리로 맞춘다. 예를 들어 확률이 45\frac{4}{5}이면 0.800000을 출력한다.

예제4

  1. 예제 1

    입력
    4
    2 1 4 3
    8 4 16 8
    2 0 6 1
    2 0 2 1
    
    예상 출력
    0.714286
    0.500000
    0.533333
    0.800000
    
  2. 예제 2

    입력
    1
    1 0 1 0
    
    예상 출력
    0.500000
    
  3. 예제 3

    입력
    4
    1 1 1 0
    1 0 1 1
    1 1 1 1
    1 0 1 0
    
    예상 출력
    0.166667
    0.833333
    0.500000
    0.500000
    
  4. 예제 4

    입력
    4
    1000 0 1000 50
    1000 50 1000 0
    1000 0 1 0
    1 0 1000 0
    
    예상 출력
    1.000000
    0.000000
    0.998006
    0.001994