반올림한 작업량
시간 제한1초메모리 제한1024 MB
A와 B를 각각 1부터 N까지 독립적으로 균등하게 고를 때 round(A/B)의 기댓값을 구한다.
문제
많은 교수가 학생들의 협동심을 기르고 한 학생이 맡는 작업량을 줄이려고 조별 과제를 낸다. 보통 작업량 와 학생 수 가 정해져 있고, 각 학생이 대략 만큼 일하기를 기대한다. 그런데 컴퓨터과학과 학생들은 분수를 몹시 두려워해서, 실제로는 만큼 일한다. 여기서 는 에 절댓값 기준으로 가장 가까운 정수다. 두 정수가 에서 같은 거리에 있으면 더 큰 쪽을 택한다.
조 크기 를 정하는 일이 어렵다는 것은 교수라면 누구나 안다. 어떤 값을 골라도 학생 절반은 더 작게 해 달라고 하고 나머지 절반은 더 크게 해 달라고 한다. 한 교수는 나무랄 데 없는 방법을 떠올렸다. 를 이상 이하의 정수 중에서 균등한 확률로 무작위로 고르는 것이다.
각 조에 작업량을 얼마나 배정할지 정할 때도 같은 문제가 생긴다. 어떤 학생은 일이 너무 많다고 불평하고(다른 수업도 있으니까), 어떤 학생은 추가 학점을 달라고 조른다. 이 교수는 비슷한 해법을 택했다. 도 이상 이하의 정수 중에서 균등한 확률로 무작위로 고른다. 물론 와 는 서로 독립적으로 고른다.
학생들은 이 무작위 작업 방식이 마음에 드는지 모르겠다. 불평하고는 싶은데 이 방식에서 자기 일이 얼마나 되는지 몰라서 많다고 해야 할지 적다고 해야 할지 판단할 수 없다. 어떻게 불평할지 정하는 데 도움이 되도록, 한 조의 학생 한 명이 하는 작업량의 기댓값을 구하자.
입력
첫째 줄이자 유일한 줄에 정수 이 하나 주어진다. ()
출력
와 가 이상 이하에서 서로 독립적으로 고른 무작위 정수일 때, 학생 한 명이 하는 작업량의 기댓값을 실수 하나로 출력한다. 상대 오차 또는 절대 오차가 이하이면 정답으로 인정한다.
힌트
첫 번째 경우 와 는 모두 확실히 이고, 는 항상 이다.
두 번째 경우 로 다음 값이 나올 수 있다.
이 값들의 평균은 이다.