Interviewstreet는 아래 질문을 포함하여 1 월에 두 번째 CodeSprint를 가졌습니다. 프로그래밍 방식의 답변이 게시되었지만 통계적인 설명은 포함되어 있지 않습니다.
(Google creds를 사용하여 Interviewstreet 웹 사이트에 로그인 한 후이 페이지 에서 Coin Tosses 문제로 이동하면 원래 문제와 게시 된 솔루션을 볼 수 있습니다 .)
동전 던지기
당신은 N 연속 머리를 얻을 때까지 계속 던지고 싶은 편견 동전이 있습니다. 당신은 동전을 M 번 던졌습니다. 놀랍게도, 모든 던지기는 머리를 가져 왔습니다.
N 연속 헤드를 얻을 때까지 예상되는 추가 토스 수는 얼마입니까?
입력 :
첫 번째 줄에는 사례 T가 포함됩니다. 다음 T 줄에는 두 개의 숫자 N과 M이 있습니다.
출력 :
해당 테스트 사례에 대한 답변이 포함 된 출력 T 라인. 정확히 소수점 이하 2 자리로 반올림 한 답을 인쇄하십시오.
샘플 입력 :
4
2 0
2 1
3 3
3 2
샘플 출력 :
6.00
4.00
0.00
8.00
샘플 설명 :
N = 2 및 M = 0 인 경우 연속 헤드가 2 개가 될 때까지 동전을 계속 던져야합니다. 평균 6 동전 던지기가 필요하다는 것을 보여주는 것은 어렵지 않습니다.
N = 2이고 M = 1 인 경우 연속 헤드가 2 개 필요하며 이미 1을 가지고 있습니다. 무엇이든 상관없이 한 번 더 던져야합니다. 첫 번째 던지기에서 머리를 얻으면 끝입니다. 그렇지 않으면 연속 카운터가 재설정 될 때 다시 시작해야하며 N = 2 연속 헤드를 얻을 때까지 동전을 계속 던져야합니다. 따라서 예상 코인 던지기 수는 1 + (0.5 * 0 + 0.5 * 6) = 4.0입니다. N = 3이고 M = 3 인 경우 이미 3 개의 헤드가 있으므로 더 이상 던질 필요가 없습니다.
내가 생각해 낸 모든 수학 방정식은 위에 나열된 샘플 입력 데이터에 대한 정답을 가지고 있지만 다른 모든 입력 세트 (알 수 없음)에 대해서는 잘못되었습니다. 그들의 프로그래밍 방식 솔루션은 방정식 시도 방법과는 크게 다른 문제를 해결하는 것으로 보입니다. 누군가 이것을 해결하는 방정식을 생각해내는 방법을 설명해 주시겠습니까?