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

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

DotA 예선

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

요약
2^n명의 참가자 중 실력이 k번째인 Idned가 매 라운드 무작위로 짝지어질 때, 높은 실력자가 항상 이긴다는 가정 아래 그가 참가하는 라운드 수의 기댓값을 구한다.
난이도

보통10점 중 7점

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

문제

다가오는 시험 공부를 미루고, "Idned"라는 닉네임을 쓰는 학생이 거대한 DotA (Development of the Algorithms) 대회의 공개 예선에 참가하기로 했다. 예선은 2n2^n명의 참가자가 겨루는 단일 탈락 토너먼트이고, Idned도 그중 한 명이다. 총 nn라운드가 진행된다. 매 라운드마다 남아 있는 다른 참가자들은 무작위로 짝을 지어 대결하며, 가능한 모든 짝 구성이 같은 확률로 나온다. 각 짝에서 두 참가자가 맞붙고, 진 쪽은 대회에서 탈락한다(이후 라운드에 참가하지 않는다).

모든 참가자는 서로 다른 레이팅을 가지며, Idned의 레이팅은 kk번째로 높다. Idned는 각 경기의 결과가 두 참가자의 레이팅만으로 완전히 결정되어 레이팅이 높은 쪽이 이긴다고 확신한다. 이 가정 아래에서, Idned가 참가하게 되는 라운드 수의 기댓값을 구할 수 있는가?

입력

입력은 두 정수 nn과 kk를 포함한다. nn은 총 라운드 수이고, kk는 전체 레이팅에서 Idned의 순위이다 (1≤n≤101 \le n \le 10; 1≤k≤2n1 \le k \le 2^n).

출력

기댓값을 출력한다.

답은 절대 오차 또는 상대 오차 10−910^{-9} 이내여야 한다. 형식적으로, 답을 aa, 채점 결과를 bb라고 할 때 ∣a−b∣max⁡(1,∣b∣)≤10−9\frac{|a-b|}{\max(1, |b|)} \le 10^{-9}이면 정답으로 간주한다.

예제2

  1. 예제 1

    입력
    2 2
    
    예상 출력
    1.666666666667
    
  2. 예제 2

    입력
    3 5
    
    예상 출력
    1.457142857143