题目:"100个人排队乘坐有100个座位的飞机,正常情况时每个都都会对号入坐,但是,第1个上飞机的是个傻子,他随机坐了一个位子,接下来的人上飞机时,如果自己座位被人坐,会随机找个座位坐下,否则就坐自己坐位。问题:最后一个上飞机的人坐到自己座位率是多少??"
郁闷,偶的智商…… 就是不会做这些题。开始认为是1/100,被bs了,然后去网上搜了下,发现居然是1/2!惊讶!
之余,偶决定自己作出来看看。
but,实在是数学不好,只能写了段code,模拟登机的过程。
#include
#include
#include
#include
#define num 100
int seat[num];//0 means not seat, 1 means already been seat.
static int loop = 1000;//run loop times to get the random result.
static int choose ();
int main (int argc, char articlelist_1442255022_0_1.html articlelist_1442255022_0_2.html articlelist_1442255022_0_3.html blog_55f710ae010002t9.html blog_55f710ae010002ta.html blog_55f710ae010002u6.html blog_55f710ae010002xx.html blog_55f710ae01000308.html blog_55f710ae01000380.html blog_55f710ae010003cc.html blog_55f710ae010003dj.html blog_55f710ae010004d0.html blog_55f710ae010004d2.html blog_55f710ae010004d3.html blog_55f710ae010004d7.html blog_55f710ae010004il.html blog_55f710ae010004sf.html blog_55f710ae01000523.html blog_55f710ae010005cn.html blog_55f710ae010005g8.html blog_55f710ae010005ie.html blog_55f710ae010005y5.html blog_55f710ae0100068z.html blog_55f710ae01000690.html blog_55f710ae010006dv.html blog_55f710ae010006hz.html blog_55f710ae010006jx.html blog_55f710ae010006me.html blog_55f710ae010006oi.html blog_55f710ae010006oy.html blog_55f710ae010006y8.html blog_55f710ae0100071z.html blog_55f710ae01000768.html blog_55f710ae010007a7.html blog_55f710ae010007a8.html blog_55f710ae010007hp.html blog_55f710ae010007jj.html blog_55f710ae010007kb.html blog_55f710ae010007oq.html blog_55f710ae01000859.html blog_55f710ae01000863.html blog_55f710ae01000866.html blog_55f710ae01000867.html blog_55f710ae01000885.html blog_55f710ae010008ao.html blog_55f710ae010008aq.html blog_55f710ae010008as.html blog_55f710ae010008d4.html blog_55f710ae010008dd.html blog_55f710ae010008e6.html blog_55f710ae010008h3.html blog_55f710ae010008iv.html blog_55f710ae010008j4.html blog_55f710ae010008j8.html blog_55f710ae010008jl.html blog_55f710ae010008jo.html blog_55f710ae010008pm.html blog_55f710ae010008ux.html blog_55f710ae010008uy.html blog_55f710ae010008v8.html blog_55f710ae0100096s.html blog_55f710ae010009e8.html blog_55f710ae010009p6.html blog_55f710ae010009px.html blog_55f710ae010009t3.html blog_55f710ae010009vs.html blog_55f710ae01000az5.html blog_55f710ae01000b58.html blog_55f710ae01000bcr.html blog_55f710ae01000bcu.html blog_55f710ae01000bdh.html blog_55f710ae01007r6i.html blog_55f710ae01007r8p.html blog_55f710ae01007trl.html blog_55f710ae010085a8.html blog_55f710ae010085mq.html blog_55f710ae01008631.html blog_55f710ae010086ok.html blog_55f710ae01008l7n.html blog_55f710ae01008l7y.html blog_55f710ae01008la8.html blog_55f710ae01008pck.html blog_55f710ae01008yyt.html blog_55f710ae01008zc7.html blog_55f710ae01008zcx.html blog_55f710ae01008zdb.html blog_55f710ae010090mc.html blog_55f710ae010096av.html blog_55f710ae010096q7.html blog_55f710ae010096ue.html blog_55f710ae01009bag.html blog_55f710ae01009bdo.html blog_55f710ae01009bf5.html blog_55f710ae01009cey.html blog_55f710ae01009ciy.html blog_55f710ae01009ddf.html cookiecsdn.txt csdn.html dblog_55f710ae010002t9.html dblog_55f710ae010002ta.html dblog_55f710ae010002u6.html dblog_55f710ae010002xx.html dblog_55f710ae01000308.html dblog_55f710ae01000380.html dblog_55f710ae010003cc.html dblog_55f710ae010003dj.html dblog_55f710ae010004d0.html dblog_55f710ae010004d2.html dblog_55f710ae010004d3.html dblog_55f710ae010004d7.html dblog_55f710ae010004il.html dblog_55f710ae010004sf.html dblog_55f710ae01000523.html dblog_55f710ae010005cn.html dblog_55f710ae010005g8.html dblog_55f710ae010005ie.html dblog_55f710ae010005y5.html dblog_55f710ae0100068z.html dblog_55f710ae01000690.html dblog_55f710ae010006dv.html dblog_55f710ae010006hz.html dblog_55f710ae010006jx.html dblog_55f710ae010006me.html dblog_55f710ae010006oi.html dblog_55f710ae010006oy.html dblog_55f710ae010006y8.html dblog_55f710ae0100071z.html dblog_55f710ae01000768.html dblog_55f710ae010007a7.html dblog_55f710ae010007a8.html dblog_55f710ae010007hp.html dblog_55f710ae010007jj.html dblog_55f710ae010007kb.html dblog_55f710ae010007oq.html dblog_55f710ae01000859.html dblog_55f710ae01000863.html dblog_55f710ae01000866.html dblog_55f710ae01000867.html dblog_55f710ae01000885.html dblog_55f710ae010008ao.html dblog_55f710ae010008aq.html dblog_55f710ae010008as.html dblog_55f710ae010008d4.html dblog_55f710ae010008dd.html dblog_55f710ae010008e6.html dblog_55f710ae010008h3.html dblog_55f710ae010008iv.html dblog_55f710ae010008j4.html dblog_55f710ae010008j8.html dblog_55f710ae010008jl.html dblog_55f710ae010008jo.html dblog_55f710ae010008pm.html dblog_55f710ae010008ux.html dblog_55f710ae010008uy.html dblog_55f710ae010008v8.html dblog_55f710ae0100096s.html dblog_55f710ae010009e8.html dblog_55f710ae010009p6.html dblog_55f710ae010009px.html dblog_55f710ae010009t3.html dblog_55f710ae010009vs.html dblog_55f710ae01000az5.html dblog_55f710ae01000b58.html dblog_55f710ae01000bcr.html dblog_55f710ae01000bcu.html getTags.sh tag.txt transBlog.sh url.txt argv)
{
int l;
int result[num];
printf("num = %d ", num);
memset(result, 0, num*sizeof(int));
for (l = 0; l < loop; l++)
{
int r = choose();
result[r]++;
}
for (l = 0; l < num; l++){
printf("result[%d] = %d ", l, result[l]);
}
return 0;
}//main
static int choose ()
{
int first, r, j, k;
//All the seat is empty.
memset(seat, 0, num*sizeof(int));
//The seat the first man seat.
r = random();
first = num articlelist_1442255022_0_1.html articlelist_1442255022_0_2.html articlelist_1442255022_0_3.html blog_55f710ae010002t9.html blog_55f710ae010002ta.html blog_55f710ae010002u6.html blog_55f710ae010002xx.html blog_55f710ae01000308.html blog_55f710ae01000380.html blog_55f710ae010003cc.html blog_55f710ae010003dj.html blog_55f710ae010004d0.html blog_55f710ae010004d2.html blog_55f710ae010004d3.html blog_55f710ae010004d7.html blog_55f710ae010004il.html blog_55f710ae010004sf.html blog_55f710ae01000523.html blog_55f710ae010005cn.html blog_55f710ae010005g8.html blog_55f710ae010005ie.html blog_55f710ae010005y5.html blog_55f710ae0100068z.html blog_55f710ae01000690.html blog_55f710ae010006dv.html blog_55f710ae010006hz.html blog_55f710ae010006jx.html blog_55f710ae010006me.html blog_55f710ae010006oi.html blog_55f710ae010006oy.html blog_55f710ae010006y8.html blog_55f710ae0100071z.html blog_55f710ae01000768.html blog_55f710ae010007a7.html blog_55f710ae010007a8.html blog_55f710ae010007hp.html blog_55f710ae010007jj.html blog_55f710ae010007kb.html blog_55f710ae010007oq.html blog_55f710ae01000859.html blog_55f710ae01000863.html blog_55f710ae01000866.html blog_55f710ae01000867.html blog_55f710ae01000885.html blog_55f710ae010008ao.html blog_55f710ae010008aq.html blog_55f710ae010008as.html blog_55f710ae010008d4.html blog_55f710ae010008dd.html blog_55f710ae010008e6.html blog_55f710ae010008h3.html blog_55f710ae010008iv.html blog_55f710ae010008j4.html blog_55f710ae010008j8.html blog_55f710ae010008jl.html blog_55f710ae010008jo.html blog_55f710ae010008pm.html blog_55f710ae010008ux.html blog_55f710ae010008uy.html blog_55f710ae010008v8.html blog_55f710ae0100096s.html blog_55f710ae010009e8.html blog_55f710ae010009p6.html blog_55f710ae010009px.html blog_55f710ae010009t3.html blog_55f710ae010009vs.html blog_55f710ae01000az5.html blog_55f710ae01000b58.html blog_55f710ae01000bcr.html blog_55f710ae01000bcu.html blog_55f710ae01000bdh.html blog_55f710ae01007r6i.html blog_55f710ae01007r8p.html blog_55f710ae01007trl.html blog_55f710ae010085a8.html blog_55f710ae010085mq.html blog_55f710ae01008631.html blog_55f710ae010086ok.html blog_55f710ae01008l7n.html blog_55f710ae01008l7y.html blog_55f710ae01008la8.html blog_55f710ae01008pck.html blog_55f710ae01008yyt.html blog_55f710ae01008zc7.html blog_55f710ae01008zcx.html blog_55f710ae01008zdb.html blog_55f710ae010090mc.html blog_55f710ae010096av.html blog_55f710ae010096q7.html blog_55f710ae010096ue.html blog_55f710ae01009bag.html blog_55f710ae01009bdo.html blog_55f710ae01009bf5.html blog_55f710ae01009cey.html blog_55f710ae01009ciy.html blog_55f710ae01009ddf.html cookiecsdn.txt csdn.html dblog_55f710ae010002t9.html dblog_55f710ae010002ta.html dblog_55f710ae010002u6.html dblog_55f710ae010002xx.html dblog_55f710ae01000308.html dblog_55f710ae01000380.html dblog_55f710ae010003cc.html dblog_55f710ae010003dj.html dblog_55f710ae010004d0.html dblog_55f710ae010004d2.html dblog_55f710ae010004d3.html dblog_55f710ae010004d7.html dblog_55f710ae010004il.html dblog_55f710ae010004sf.html dblog_55f710ae01000523.html dblog_55f710ae010005cn.html dblog_55f710ae010005g8.html dblog_55f710ae010005ie.html dblog_55f710ae010005y5.html dblog_55f710ae0100068z.html dblog_55f710ae01000690.html dblog_55f710ae010006dv.html dblog_55f710ae010006hz.html dblog_55f710ae010006jx.html dblog_55f710ae010006me.html dblog_55f710ae010006oi.html dblog_55f710ae010006oy.html dblog_55f710ae010006y8.html dblog_55f710ae0100071z.html dblog_55f710ae01000768.html dblog_55f710ae010007a7.html dblog_55f710ae010007a8.html dblog_55f710ae010007hp.html dblog_55f710ae010007jj.html dblog_55f710ae010007kb.html dblog_55f710ae010007oq.html dblog_55f710ae01000859.html dblog_55f710ae01000863.html dblog_55f710ae01000866.html dblog_55f710ae01000867.html dblog_55f710ae01000885.html dblog_55f710ae010008ao.html dblog_55f710ae010008aq.html dblog_55f710ae010008as.html dblog_55f710ae010008d4.html dblog_55f710ae010008dd.html dblog_55f710ae010008e6.html dblog_55f710ae010008h3.html dblog_55f710ae010008iv.html dblog_55f710ae010008j4.html dblog_55f710ae010008j8.html dblog_55f710ae010008jl.html dblog_55f710ae010008jo.html dblog_55f710ae010008pm.html dblog_55f710ae010008ux.html dblog_55f710ae010008uy.html dblog_55f710ae010008v8.html dblog_55f710ae0100096s.html dblog_55f710ae010009e8.html dblog_55f710ae010009p6.html dblog_55f710ae010009px.html dblog_55f710ae010009t3.html dblog_55f710ae010009vs.html dblog_55f710ae01000az5.html dblog_55f710ae01000b58.html dblog_55f710ae01000bcr.html dblog_55f710ae01000bcu.html getTags.sh tag.txt transBlog.sh url.txt ((double)r/(double)RAND_MAX);
seat[first] = 1;
//The man from 1 to num-1 seat.
for (j = 1; j < num; j++)
{
if (seat[j] == 0){
seat[j] = 1;//Seat to his own seat.
k = j;
}else{
//Find the seat to set.
do{
r = random();
k = num articlelist_1442255022_0_1.html articlelist_1442255022_0_2.html articlelist_1442255022_0_3.html blog_55f710ae010002t9.html blog_55f710ae010002ta.html blog_55f710ae010002u6.html blog_55f710ae010002xx.html blog_55f710ae01000308.html blog_55f710ae01000380.html blog_55f710ae010003cc.html blog_55f710ae010003dj.html blog_55f710ae010004d0.html blog_55f710ae010004d2.html blog_55f710ae010004d3.html blog_55f710ae010004d7.html blog_55f710ae010004il.html blog_55f710ae010004sf.html blog_55f710ae01000523.html blog_55f710ae010005cn.html blog_55f710ae010005g8.html blog_55f710ae010005ie.html blog_55f710ae010005y5.html blog_55f710ae0100068z.html blog_55f710ae01000690.html blog_55f710ae010006dv.html blog_55f710ae010006hz.html blog_55f710ae010006jx.html blog_55f710ae010006me.html blog_55f710ae010006oi.html blog_55f710ae010006oy.html blog_55f710ae010006y8.html blog_55f710ae0100071z.html blog_55f710ae01000768.html blog_55f710ae010007a7.html blog_55f710ae010007a8.html blog_55f710ae010007hp.html blog_55f710ae010007jj.html blog_55f710ae010007kb.html blog_55f710ae010007oq.html blog_55f710ae01000859.html blog_55f710ae01000863.html blog_55f710ae01000866.html blog_55f710ae01000867.html blog_55f710ae01000885.html blog_55f710ae010008ao.html blog_55f710ae010008aq.html blog_55f710ae010008as.html blog_55f710ae010008d4.html blog_55f710ae010008dd.html blog_55f710ae010008e6.html blog_55f710ae010008h3.html blog_55f710ae010008iv.html blog_55f710ae010008j4.html blog_55f710ae010008j8.html blog_55f710ae010008jl.html blog_55f710ae010008jo.html blog_55f710ae010008pm.html blog_55f710ae010008ux.html blog_55f710ae010008uy.html blog_55f710ae010008v8.html blog_55f710ae0100096s.html blog_55f710ae010009e8.html blog_55f710ae010009p6.html blog_55f710ae010009px.html blog_55f710ae010009t3.html blog_55f710ae010009vs.html blog_55f710ae01000az5.html blog_55f710ae01000b58.html blog_55f710ae01000bcr.html blog_55f710ae01000bcu.html blog_55f710ae01000bdh.html blog_55f710ae01007r6i.html blog_55f710ae01007r8p.html blog_55f710ae01007trl.html blog_55f710ae010085a8.html blog_55f710ae010085mq.html blog_55f710ae01008631.html blog_55f710ae010086ok.html blog_55f710ae01008l7n.html blog_55f710ae01008l7y.html blog_55f710ae01008la8.html blog_55f710ae01008pck.html blog_55f710ae01008yyt.html blog_55f710ae01008zc7.html blog_55f710ae01008zcx.html blog_55f710ae01008zdb.html blog_55f710ae010090mc.html blog_55f710ae010096av.html blog_55f710ae010096q7.html blog_55f710ae010096ue.html blog_55f710ae01009bag.html blog_55f710ae01009bdo.html blog_55f710ae01009bf5.html blog_55f710ae01009cey.html blog_55f710ae01009ciy.html blog_55f710ae01009ddf.html cookiecsdn.txt csdn.html dblog_55f710ae010002t9.html dblog_55f710ae010002ta.html dblog_55f710ae010002u6.html dblog_55f710ae010002xx.html dblog_55f710ae01000308.html dblog_55f710ae01000380.html dblog_55f710ae010003cc.html dblog_55f710ae010003dj.html dblog_55f710ae010004d0.html dblog_55f710ae010004d2.html dblog_55f710ae010004d3.html dblog_55f710ae010004d7.html dblog_55f710ae010004il.html dblog_55f710ae010004sf.html dblog_55f710ae01000523.html dblog_55f710ae010005cn.html dblog_55f710ae010005g8.html dblog_55f710ae010005ie.html dblog_55f710ae010005y5.html dblog_55f710ae0100068z.html dblog_55f710ae01000690.html dblog_55f710ae010006dv.html dblog_55f710ae010006hz.html dblog_55f710ae010006jx.html dblog_55f710ae010006me.html dblog_55f710ae010006oi.html dblog_55f710ae010006oy.html dblog_55f710ae010006y8.html dblog_55f710ae0100071z.html dblog_55f710ae01000768.html dblog_55f710ae010007a7.html dblog_55f710ae010007a8.html dblog_55f710ae010007hp.html dblog_55f710ae010007jj.html dblog_55f710ae010007kb.html dblog_55f710ae010007oq.html dblog_55f710ae01000859.html dblog_55f710ae01000863.html dblog_55f710ae01000866.html dblog_55f710ae01000867.html dblog_55f710ae01000885.html dblog_55f710ae010008ao.html dblog_55f710ae010008aq.html dblog_55f710ae010008as.html dblog_55f710ae010008d4.html dblog_55f710ae010008dd.html dblog_55f710ae010008e6.html dblog_55f710ae010008h3.html dblog_55f710ae010008iv.html dblog_55f710ae010008j4.html dblog_55f710ae010008j8.html dblog_55f710ae010008jl.html dblog_55f710ae010008jo.html dblog_55f710ae010008pm.html dblog_55f710ae010008ux.html dblog_55f710ae010008uy.html dblog_55f710ae010008v8.html dblog_55f710ae0100096s.html dblog_55f710ae010009e8.html dblog_55f710ae010009p6.html dblog_55f710ae010009px.html dblog_55f710ae010009t3.html dblog_55f710ae010009vs.html dblog_55f710ae01000az5.html dblog_55f710ae01000b58.html dblog_55f710ae01000bcr.html dblog_55f710ae01000bcu.html getTags.sh tag.txt transBlog.sh url.txt ((double)r/(double)RAND_MAX);
}while(seat[k] == 1);
seat[k] = 1;
}//Seat to other man's seat.
}//for
//Record the num-1's k, which means where the last man set.
return k;
}
代码不是穷举,而是模拟,所以最后得到的是一个大致不精确的值。在loop为1000的时候,基本上坐第一个位置498次,坐第100个位置502次,可以看到基本上是接近于50%的。
还有就是可以去推:
当只有3个人ABC的时候,座位可以是123, 213, 231, 321。
当只有4个人ABCD的时候,座位可以是1234, 2134, 2314, 2341, 2431, 3214, 3241, 4231。
……
可以看出50%的概率。
另外,摘抄网上搜到的答案 CSDN:
分析由两部分完成,前一部分作为后一部分的基础。
首先证明第100号乘客不是坐在自己的位置上,就是坐到1号位置上。
记j为第j号乘客,s[j]表示第j号座位上的乘客。s[5]=50,表示第50号乘客坐在5号位置上。
假设s[k] = 100(k!=1, i!=100),即100即不坐在第1号和100号座位上。
由于s[k]不等于k且k不等于1(即K不是傻子),因此到k上机时,它的位置已被人占用了,并且也只能被1,2,.., k-1占了位置,
即s[k]
下面证明100坐在1号座位和100号座位的机会均等
第一个傻子跑上飞机后,如果它坐在第1号座位上,那么2,3,...,100都坐在自己的座位上,那么100坐在自己的座位上;
如果它坐在100号座位上,那么2,3,...,99都坐在自己的座位上,而100只能坐在1号座位上,那么100不能坐在自己的座位上;
以上两种机会是均等的。
否则傻子坐到另外的座位上记为n1(1
到n1上机后,不能坐在自己的座位上。如果n1坐在1号座位上,那么n1+1,...,100都在坐在自己的座位上;如果n1坐在100号座位上,那么n1+1,...,99都能坐在自己的位置上,100只能坐在1号座位上。这两种情况的机会仍然均等。
否则n1坐到n2号座位上(n1 故100坐到1号座位和100号座位的机会是均等的……
故答案为50%。我想这是大家始料不及的答案吧。
第一次想到这个答案,我个人觉得不可思异,太有一种美感在里面,这个概率很大,并且不与人数有直接的关系。其实很多数学或者是算法问题都是这样的,经过数学进行分析,结果往往比程序直接求解简单得多了!