1、题目(《离散数学及其应用》第6版P75 20 题)
给出可以列出有限集合所有子集的步骤。
2、 解题思路
假设有集合A = {a1, a2 … an},列出其所有子集。
- 先列出含有1个元素的所有子集:{a1},{a2} … {an}
- 然后列出含有2个元素的所有子集:{a1,a2},{a1,a3}…{an-1,an}
- 同上所示,一直列到含有n个元素的所有子集
可以看出,问题就简化为求在 A 集合中,求含有固定 x 个元素的所有子集(注意,子集中每个ai只能包含一次)。
这实际上类似这么个问题,袋子中有编号为1到10的10个球,每次取一个球,取出后不放回袋子,取3次,问取出的3个球的编号可能的所有组合。
方法:
- 取第1个球时,有1~10种取法
- 取第2个球时,如果知道第1个球取的编号是a,则第2个球有除a以外的9种取法,但要注意{1,2}和{2,1}是同一个子集,如何保证不取已经取过了的同一组编号的球?
我们可以观察到如果让{1,2}2个球按编号大小排列只有一种排列方式即{1,2},所以只要保证第2个球的编号比第一个球的编号