集合S上双射函数f的数量求解及思路困惑
集合S上双射函数f的数量求解及思路困惑
嗨,我来帮你把这个问题的思路理清楚~
首先先明确两个核心方向,我们一步步拆解:
一、如果是求所有从S到S的双射函数f的数量
因为S是包含7个元素的有限集合,从S到S的双射函数其实就是集合S的置换,置换的总数等于元素个数的阶乘,直接计算即可:7! = 7×6×5×4×3×2×1 = 5040
二、如果是求不满足f(f(x))=x对所有x∈S成立的双射函数数量
你提到的「用总数减去满足f(f(x))=x的数量」这个思路其实完全正确,不用纠结“部分满足”的情况,我给你详细拆解:
1. 先算满足f(f(x))=x的双射函数(这类置换叫「对合置换」)的数量
对合置换的结构很特殊:它只能由**若干个2-循环(交换两个元素)和1-循环(不动点,即f(x)=x)**组成。如果置换里出现长度≥3的循环(比如(1 2 3)),那f(f(1))=f(2)=3≠1,就不满足f(f(x))=x了。
我们分情况计算7个元素的对合数量:
- 0个2-循环,7个不动点:只有1种(恒等置换,每个元素都不动)
- 1个2-循环,5个不动点:从7个元素里选2个组成循环,数量是组合数
C(7,2)=21 - 2个2-循环,3个不动点:先选4个元素,再分成两组各2个(要除以2!避免重复,因为两个2-循环的顺序不影响),数量是
C(7,4) × C(4,2) / 2! = 35×6/2=105 - 3个2-循环,1个不动点:先选6个元素,再分成3组各2个(除以3!避免重复),数量是
C(7,6) × C(6,2)×C(4,2)×C(2,2)/3! =7×15×6×1/6=105
把这些加起来,对合置换的总数是:1+21+105+105=232
2. 计算非对合的双射函数数量
直接用总置换数减去对合置换数即可:5040 - 232 = 4808
这里解释你的困惑:你担心的「部分满足f(f(x))=x,其他部分不满足」的情况,其实已经被包含在这个结果里了。因为对合置换是所有元素都满足f(f(x))=x的置换,剩下的所有置换,不管是含有长循环,还是混合了2-循环和长循环,都属于「至少有一个元素不满足f(f(x))=x」的情况,所以这个减法逻辑完全成立。
备注:内容来源于stack exchange,提问作者Chokbitt
相关产品推荐
相关产品推荐

