回文就是正读反读都一样的词,比如 “radar”
用函数生成回文的话,给每个字符一个 Base Case 和一个函数,这个函数把同一个字符添加到字符串两侧,就可以生成所有的回文了。
$B=\{\text{set of all chars}\}$
$F=\{x \to cxc \text{ | } c \in B\}$
一个二进制字符串就是由 01 组成的字符串,题目是需要用函数生成所有有偶数个 1 的字符串
因为可以随意加 0,所以用一个函数给字符串添加 0:$f(x): x \to x0$
但是因为必须要偶数个 1,所以添加 1 的函数必须一次添加两个 1。只用 $x\to x11$ 不行,因为这样 101 没办法生成,所以要加上 $x\to 1x1$
$B=\{\text{empty string}\}$
$F=\{x\to x0, x\to x11, x\to1x1\}$
游戏规则如下,需要证明一个后手必胜策略:
Base case: $n=1$ 的情况下(两堆都只有一个石头)显然后手必胜,因为先手必须从一堆里拿走一个石头,后手拿走另一个石头就没有石头了,先手就输了。
必胜思路就是把两堆 $n$ 个石头的情况降级到 $n-k$ 个石头的情况:每一步先手拿走 $k$ 个石头,后手就从另一队里拿走 $k$ 个石头,这样两堆的石头数量就都是 $n-k$ 了,直到减到 $n=1$ 后手必胜。