组合公式减去镜像结果

问题描述

我正在讨论一个由 5 名玩家组成的团队可以参加的组合数。我们都同意总组合数为 5! = 120。我们的不同之处在于排除了镜像结果。所以ABCDE和EDCBA是一样的,但是DECBA会不一样。

我的想法是你会减去 4!剩下的 4 个位置产生了 96 个不同的团队组合。

他试图让我相信 120 个原始组合中有 1/2 是一面镜子。

能否请更擅长离散数学的人帮忙解决这个问题?

解决方法

你们都对,有 5 个! = 一组五个唯一元素 {A,B,C,D,E} 的 120 个排列。但是,您的朋友是正确的,其中一半的排列与列表中的其他排列相反。证明很简单:

考虑任何排列 uvxyz。与此相反,zyxvu 也是一个排列,并且是唯一确定的。因为逆是它自己的逆,所以zyxvu的逆是uvxyz,原始排列。因此,这组 120 个排列中的每一个排列都恰好被另一个排列所反映,而该排列不反映其他排列。我们可以想象一个二部图,它的节点用排列标记,并且用弧连接标记反向的节点。为消除所有边(镜像)而必须从该图中移除的最小节点数正好是图中节点的一半。

为了对此有一些直观的了解,请先想象一个小得多的案例,然后再想象一个更大的案例。考虑 N=3,集合 {A,C}。有六种排列:ABC、ACB、BAC、BCA、CAB 和 CBA。如果你的朋友是对的,我们需要删除其中三个;如果你是对的,我们会删除两个。您可以验证实际上存在三个配对:

ABC   CBA
ACB   BCA
BAC   CAB

现在,想象一个更大的数字,比如 N=100。如果您的朋友是对的,则需要删除 50% 的排列。如果您是对的,则只需删除 99! 或恰好 1% 的排列。对于 N=1000,您的朋友说必须进行 50% 的排列,而您说只有 0.1% 被镜像。等等。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...