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

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

반올림한 작업량

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

요약
A와 B를 각각 1부터 N까지 독립적으로 균등하게 고를 때 round(A/B)의 기댓값을 구한다.
난이도

보통10점 중 6점

유형
수학, 정수론, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

많은 교수가 학생들의 협동심을 기르고 한 학생이 맡는 작업량을 줄이려고 조별 과제를 낸다. 보통 작업량 AA와 학생 수 BB가 정해져 있고, 각 학생이 대략 A/BA/B만큼 일하기를 기대한다. 그런데 컴퓨터과학과 학생들은 분수를 몹시 두려워해서, 실제로는 round(A/B)\text{round}(A/B)만큼 일한다. 여기서 round(x)\text{round}(x)는 xx에 절댓값 기준으로 가장 가까운 정수다. 두 정수가 xx에서 같은 거리에 있으면 더 큰 쪽을 택한다.

조 크기 BB를 정하는 일이 어렵다는 것은 교수라면 누구나 안다. 어떤 값을 골라도 학생 절반은 더 작게 해 달라고 하고 나머지 절반은 더 크게 해 달라고 한다. 한 교수는 나무랄 데 없는 방법을 떠올렸다. BB를 11 이상 NN 이하의 정수 중에서 균등한 확률로 무작위로 고르는 것이다.

각 조에 작업량을 얼마나 배정할지 정할 때도 같은 문제가 생긴다. 어떤 학생은 일이 너무 많다고 불평하고(다른 수업도 있으니까), 어떤 학생은 추가 학점을 달라고 조른다. 이 교수는 비슷한 해법을 택했다. AA도 11 이상 NN 이하의 정수 중에서 균등한 확률로 무작위로 고른다. 물론 AA와 BB는 서로 독립적으로 고른다.

학생들은 이 무작위 작업 방식이 마음에 드는지 모르겠다. 불평하고는 싶은데 이 방식에서 자기 일이 얼마나 되는지 몰라서 많다고 해야 할지 적다고 해야 할지 판단할 수 없다. 어떻게 불평할지 정하는 데 도움이 되도록, 한 조의 학생 한 명이 하는 작업량의 기댓값을 구하자.

입력

첫째 줄이자 유일한 줄에 정수 NN이 하나 주어진다. (1≤N≤1061 \leq N \leq 10^6)

출력

AA와 BB가 11 이상 NN 이하에서 서로 독립적으로 고른 무작위 정수일 때, 학생 한 명이 하는 작업량의 기댓값을 실수 하나로 출력한다. 상대 오차 또는 절대 오차가 10−610^{-6} 이하이면 정답으로 인정한다.

힌트

첫 번째 경우 AA와 BB는 모두 확실히 11이고, round(A/B)\text{round}(A/B)는 항상 11이다.

두 번째 경우 (A,B,round(A/B))(A, B, \text{round}(A/B))로 다음 값이 나올 수 있다.

  • (1,1,1)(1, 1, 1)
  • (1,2,1)(1, 2, 1)
  • (1,3,0)(1, 3, 0)
  • (2,1,2)(2, 1, 2)
  • (2,2,1)(2, 2, 1)
  • (2,3,1)(2, 3, 1)
  • (3,1,3)(3, 1, 3)
  • (3,2,2)(3, 2, 2)
  • (3,3,1)(3, 3, 1)

이 값들의 평균은 12/9=4/312/9 = 4/3이다.

예제2

  1. 예제 1

    입력
    1
    
    예상 출력
    1.000000000000
    
  2. 예제 2

    입력
    3
    
    예상 출력
    1.333333333333