考虑问题的反面:数字1-6组成的六位数中满足以下条件的集合
A={"至多有2位数不同"},B={"1,6相邻"}
$|A|=6+C_6^2(6!/(3!3!)+2(6!/5!+6!/(2!4!)))=936$,$|B|=10702$(见https://bbs.emath.ac.cn/forum.ph ... 67&fromuid=8865)
代码验证- Select[Tuples[Range[6], 6],
- Length@DeleteDuplicates[#] <= 2 &] // Length
- Select[Tuples[Range[6], 6],
- MatchQ[#, {___, 1, 6, ___} | {___, 6, 1, ___}] &] // Length
复制代码 A∩B相当于只有1和6的情况:|A∩B|=6!/(3!3!)+2[6!/5!+6!/(2!4!)]=62.
所以|A∪B|=|A|+|B|-|A∩B|=936+10702-62=11576.
所求结果为|I|-|A∪B|=6^6-11576=35080.
代码验证- Select[Tuples[Range[6], 6],
- Length@DeleteDuplicates[#] >= 3 && !
- MatchQ[#, {___, 1, 6, ___} | {___, 6, 1, ___}] &] // Length
复制代码 |