给定整数 $n$($n\geqslant 3$),记 $f(n)$ 为集合 $\left\{1,2,\cdots,2^n-1\right\}$ 的满足如下两个条件的子集 $A$ 的元素个数的最小值:
① $1\in A$,$2^n-1\in A$;
② $A$ 中的元素(除 $1$ 外)均为 $A$ 中另外两个元素(可以相同)的和.
【难度】
【出处】
【标注】
  • 方法
    >
    思考方式
    >
    信息迁移
  • 知识点
    >
    函数
    >
    集合与映射
  • 方法
    >
    思考方式
    >
    递推与递归
  • 题型
    >
    组合数学
    >
    组合证明
  • 知识点
    >
    函数
    >
    集合与映射
  1. 求 $f(3)$ 的值;
    标注
    • 方法
      >
      思考方式
      >
      信息迁移
    • 知识点
      >
      函数
      >
      集合与映射
    答案
    $ 5 $
    解析
    $f(3)=5$.首先,取集合 $\{1,2,3,5,7\}$ 可以说明 $f(3)\leqslant 5$;接下来说明不存在符合条件的 $4$ 个元素的集合.由于 $7\in A$,根据条件 ②,只需要逐一验证$$\{1,2,5,7\},\{1,3,4,7\},\{1,2,6,7\},\{1,3,6,7\},\{1,4,6,7\},\{1,5,6,7\}$$即可,不难得到以上集合均不符合要求;显然不可能存在符合条件的含 $3$ 个元素或 $2$ 个元素的集合,因此 $f(3)=5$.
  2. 求证:$f(100)\leqslant 108$.
    标注
    • 方法
      >
      思考方式
      >
      递推与递归
    • 题型
      >
      组合数学
      >
      组合证明
    • 知识点
      >
      函数
      >
      集合与映射
    答案
    解析
    尝试用递推的方式解决问题.
    初步试探首先考虑如何从 $n\to n+1$.假设现在手头已经有一个满足题意的集合$$A=\left\{1,\cdots,2^n-1\right\}$$它包含 $f(n)$ 个元素,那么是否可以对此集合加以改造(增加若干元素),使得它对 $n+1$ 的情形也符合题意呢?毫无疑问,元素 $2^{n+1}-1$ 应当马上放入集合 $A$.为了使得 $2^{n+1}-1$ 可以表示为集合 $A$ 中的两个元素之和,还应当放入元素$$2^n,2^n+1,\cdots,2^{n+1}-2$$中的至少一个.稍加尝试可知放入元素 $2^n$ 就可以了,此时集合$$A\cup\left\{2^n,2^{n+1}-1\right\}$$在 $n+1$ 的情形时符合题意.
    回顾反思这样我们就得到了递推式$$f(n+1)\leqslant f(n)+2.$$但这个递推式的成本很高,每将 $n$ 推进 $1$,需要增加 $2$ 个元素.也就是无法应用该递推式得到 $f(100)\leqslant 108$ 这么好的结果.
    继续深入接下来寻找成本更为低廉的递推式,考虑 $n\to 2n$.此时面临的困难在于如何迅速从 $2^n-1$ 到达 $2^{2n}-1$.事实上,每次翻番是非常好的前进方式:$$2^{n+1}-2,2^{n+2}-2^2,\cdots,2^{2n}-2^n,$$此时由于$$\left(2^{2n}-2^n\right)+\left(2^n-1\right)=2^{2n}-1,$$因此$$A\cup\left\{2^{n+1}-2,2^{n+2}-2^2,\cdots,2^{2n}-2^n,2^{2n}-1\right\}$$是在 $2n$ 的情形时符合题意的集合.
    最终胜利据此,我们有递推式$$f(2n)\leqslant f(n)+n+1.$$这个递推式的成本基本上和结论要求很相近了,接下来只需要交替使用这两种递推式(优先使用第二个递推式)就可以得到$$\begin{split} f(100)\leqslant &f(50)+51\leqslant f(25)+77 \\\leqslant &f(24)+79\leqslant f(12)+92\\\leqslant &f(6)+99\leqslant f(3)+103=108.\end{split} $$
题目 问题1 答案1 解析1 备注1 问题2 答案2 解析2 备注2
0.142800s