题目详情
n个人,每个人都有一件礼物想送给他人,他们决定把礼物混在一起,然后每个人随机拿走一件,问恰好有m个人拿到的礼物恰好是自己的概率是多少?
输出结果四舍五入,保留8位小数,为了保证精度,我们用字符串作为返回类型。
输入:n,m (0<n<100, 0<=m<=n)
例如:
n = 2,m = 1,输出:0.00000000;
n = 99,m = 0,输出:0.36787944
..
我的想法:
求概率即求恰好m个人选对的情况种数除以n个人选礼物的总数,分母为n的一个组合即A(n,n),分子的求解过程是先从n个人中挑选m个人的排列即C(n,m),m个人都选对,接下来就是n-m人选礼物,且保证每个人都不选自己的礼物,要求n-m个人都没选中有多少种,即可用n-m的组合减去选中1个人,2个人,3个人....n-m-1个人,n-m个人的种数,所以讲n的问题转换成了n-m个同等子问题,用递归的方法从底往上即可算出分子表示的种数,即可求出概况。