Solution - Quiz 19
$E(x)=x$ 라 주장한다.
$E(1)=1$ 이다. $k$ 이하의 수 $j$에 대해 $E(j)=j$ 라 하자.
$E(0)=0$
$E(k+1)$ 의 한 번의 자리바꾸기 후의 상황을 고려한다.
모든 경우의 수는 $(k+1)!$ 임이 자명하다.
$P(x,y)$를 팀원 $x$명이 서있을 때 한 번의 자리 바꾸기로 $y$ 명이 자신의 자리가 아니고 $x-y$ 명이 자신의 자리를 가게 될 확률이라고 하자.
$x$ 명이 자리를 바꾸었는데 그 중 $y$ 명이 자신의 자리가 아닌 경우의 수는 $\dbinom{x}{y} \cdot D_y$ 이다.
$D_y=$ 교란 순열
즉,
여기서 수식 전개에 실패했다. $E(k+1)=k+1$ 임을 보이면 귀납이 성립되어 $E(X)=X$ 가 보여진다.
하지만 이를 코드로 나타내면 $X=31$ 에서는 명백히 원하는 결과를 얻는다.
이것으로 해설을 일단 대신한다.
void solve() {
vector<double> F(32, 1), D(32);
for (int i = 2; i <= 31; i++) F[i] = F[i - 1] * i;
D[1] = 0, D[2] = 1;
for (int i = 3; i <= 31; i++) D[i] = (i - 1) * (D[i - 2] + D[i - 1]);
double ans = 1;
for (int i = 0; i <= 31; i++) ans += i * D[i] / (F[i] * F[31 - i]);
cout << ans;
}
output: 31
Comments