对于第一个乘客来说 他有三种选择
坐在正确的(自己的位置), 那么后面的乘客都不会乱,所以第n个乘客可以坐到自己的位置, 1/n * 1.
坐在第n个乘客的位置,那么第n个乘客肯定无法坐到自己的位置, 1/n * 0.
坐在[1,n-1]之间的某个位置K.
对于第K个乘客而言,自己的位置K已经被乘客1给占了,而[2,K-1]的乘客先于K乘客 上飞机,能找到自己的位置并坐下,所以当K乘客上飞机时,留给他的选择是
第1个座位,以及[K+1,n]的座位。
此时K乘客同样有3个选择,
如果他坐在正确的座位,那么后面的乘客都不会乱,第n个乘客可以坐到自己的位置,
只不过此时对于K乘客而言,正确的座位就是座位1。
坐在第n个乘客的位置,那么第n个乘客肯定无法坐到自己的位置
坐在[K+1,n-1]之间的某个位置。
可以发现对于第一个乘客和第K个乘客,他们面临的选择是一样的,只不过问题的规模不一样。第K个乘客时,问题的规模只有n-K+1. (为何, 上面已经解释过了,对于第K个乘客而言,自己的位置K已经被乘客1给占了,而[2,K-1]的乘客先于K乘客 上飞机,能找到自己的位置并坐下)。
所以此题公式为
p[1] = 1.0;
p[2] = 0.5;
p[3] = 1/3 + p[2]/3 = 0.5;
p[4] = 1/4 + p[2]/4 + p[3]/4 = 0.5
p[n] = 1/n + p[2]/n + ..... + p[n-1]/n
np[n] = 1+p[2]+p[3]+......+p[n-1];
(n+1)p[n+1]=1+p[2]+p[3]+......+p[n]
(n+1)p[n+1]-np[n]=p[n];
p[n+1]=p[n];(n>=2)
所以:
p[n]=1(n=1)
p[n]=0.5(n=2,3,4,5,...)