You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集合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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 16:08:03