Magic_0919 2016-01-24 15:26 采纳率: 100%
浏览 1816
已采纳

算法问题:n组对象配对,最终均不配对的结果总数是多少?

详细说明:

有n组已经一一配对的人,现在随机分组,重新一对一分配,求最终每个新分组都与之间不同(每个人配对的新人都与之前不同,不能存在其中某些人的分组没有变化的情况)的可能情况总数。(分组内外部均没有先后次序区别)

我的思路:

第一个人可以有n-1个选择,假设他选择了B,那么原本与B配对的人下一个选择,他有n-1个选择,然后假设他选择了C,原本与C配对的人下一个选择,他有n-2过选择……,最终结果是:(n-1) * (n-1)!


当然,结果是我是错的……

求问:

应该如何计算?我的思路错在哪里?

编程问题,所以程序解决思路也可以,不过我主要想知道数学原理。

  • 写回答

8条回答

  • sssseeeeee 2016-01-25 02:53
    关注

    将问题理解成1,2,3...n的错位排列:1,2,3...n重排,k不在第k个位置上。记Si为有i个数在原来位置上的排列,个数为n!/(i!(n_i)!)=n!/i!。#表示乘号。即i个数在原位上,剩下的数全排,剩下的数在不在原位上无所谓,因为容斥原理,错排个数为n!_n!/1!+n!/2!_...+n!/n! (_1)#. #表示乘方

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器