녹아웃은 플레이어가 차례대로 총을 쏘는 농구 게임입니다. 이 게임은 2 인 컨테스트의 순서로 진행되며, 각 컨테스트는 해당 플레이어 중 한 명을 녹아웃 할 수 있습니다.
플레이어가 대회에서 다른 플레이어와 독립적으로 A B C D
촬영하고 바구니를 만들 기회가 0.1 0.2 0.3 0.4
각각 있다고 가정합니다 . 두 줄의 앞에 선수, A
그리고 B
"싸움." 이후 A
첫번째 간다, 그는입니다 수비수 제거 될 위험에, 그리고 B
는 IS 공격자 , 그리고 즉시 제거의 위험이있다. A
먼저 쏴. 경우 A
그것을하게, A
성공적으로 방어하고, 라인의 뒤쪽으로 이동했다. 줄이로 바뀝니다 B C D A
. 만약 A
그것을하지 않습니다, 다음 B
촬영. 만약 B
그것을 만들고 나면 줄 A
밖으로 나오고 B
줄이됩니다 C D B
. 그렇지 않다면A
또는 바구니를 만들 때까지 다시 촬영 B
하면서 프로세스가 반복 되지도 않습니다 .A
A
B
줄이 B C D A
( A
성공적으로 변했다고) 가정 해 보자 . 이제 B
와 C
"전투"와 B
수비수 인, 그리고 C
공격자 것. 이 과정은 한 사람 만 남을 때까지 반복됩니다. 그 사람이 승자입니다.
당신의 임무는 그들이 바구니를 만들 수있는 기회를 주어진 각 사람의 확률을 계산하는 것입니다.
입력 :
같은 번호의 목록 0.1 0.2
또는 0.5 0.5 0.5 0.5
1, n은 일 수는있는 기회입니다 N 번째 선수가 바구니를 만들 것입니다. 이 입력은 함수의 매개 변수를 포함하여 원하는 형식으로 가져올 수 있습니다.
출력 :
숫자, 목록 , n은 일 수는있는 기회입니다 N 번째 플레이어가 게임에서 승리합니다. 숫자는 시간의 90 % 이상에서 소수점 이하 두 자리까지 정확해야합니다. 이는 시뮬레이션 기반 접근 방식을 사용할 수 있음을 의미합니다. 그러나 코드가 시뮬레이션 기반이 아닌 경우 ( 소수점 6 자리 이상으로 정답을 보증 함) 점수에서 30 %를 빼십시오.
예 0.5 0.5
: 플레이어에게 전화 A
를 B
겁니다. p
A의 승리 확률을 보자 . A
이 2/3
성공적으로 방어의 기회를 (A가 이후 1/2
기회가 A
점수를하는 1/4
기회가 A
미스와 B
점수, 그리고 1/4
기회가 미스 프로세스 반복 둘 다). 경우 A
방어에 실패, 그는 기절하고 B
승리. 경우 A
방어, 해, 행이된다 B A
. 상황이 대칭이기 때문에 A
이길 확률은 입니다 (1 - p)
. 우리는 얻는다 :
p = 2/3 * (1 - p) + 1/3 * 0
. 해결, 우리는 얻는다 p = 2/5
. 출력은 2/5 3/5
또는 이어야합니다 0.4 0.6
.
더 복잡한 예제를 수행 할 확률이 충분하지 않습니다.
더 많은 테스트 사례가 필요한 경우 다음과 같습니다.
0.1 0.2 0.3 0.4 --> 0.01 0.12 0.25 0.62
0.99 0.99 --> 0.5 0.5 (it's not exact, but if you round to two decimal places, you get 0.5 and 0.5)