专题一、关于递归问题的探讨(2)—— 平面分割问题

在这个专题中,我们将通过探讨 3 3 3 个经典的递归问题,学习用递归分析问题的成套方法与策略。

参考资料:《具体数学 第 2 2 2 版》

二、平面分割问题

用一把披萨刀直直地切 n n n 刀,最多可以得到多少块披萨饼?说得学术一点,平面上 n n n 条直线所界定的区域的个数 L n L_n Ln 最大是多少?这个问题于 1826 1826 1826 年被瑞士数学家斯坦纳解决。

1. 递归解

我们再次从研究小的情形开始。没有直线的平面有 1 1 1 个区域,有一条直线的平面有 2 2 2 个区域,有两条直线的平面有 4 4 4 个区域。
!](https://img-blog.csdnimg.cn/7a38decedfa04f87b4094b9ac7149e45.png)
如果第 n n n 条直线能把每个已有区域分为两个,那么区域的个数就能加倍。可以确定的是,它肯定能把一个已有区域至多分成两个,因为每一个已有区域都是凸的(一条直线可以把一个凸区域分成至多两个新区域,这些新区域也是凸的)。但是当增加第三条直线时,无论如何放置,它至多只能分裂 3 3 3 个已有的区域:
在这里插入图片描述
从而 L 3 = 4 + 3 = 7 L_3 = 4 + 3 = 7 L3=4+3=7 是我们能够做到的最好结果。

我们给出适当的推广分析:当且仅当第 n ( n > 0 ) n (n > 0) n(n>0) 条直线对 k k k 个已有区域进行了分裂时,区域的个数会增加 k k k 个。而当且仅当它与已有的那些直线相交于 k − 1 k - 1 k1 个不同的点时,它会对 k k k 个已有区域进行分裂。我们知道两条直线至多相交于一点,因而第 n n n 条直线与那 n − 1 n - 1 n1 条已有直线至多相交于 n − 1 n - 1 n1 个不同的点,故必定有 k ≤ n k \le n kn。从而我们得到了上界
L n ≤ L n − 1 + n , n > 0 L_n \le L_{n - 1} + n, n > 0 LnLn1+n,n>0事实上,我们可以做到在放置第 n n n 条直线时,使得它不与其他直线中的任何一条平行,从而与它们全部相交,且该直线不经过任何已经存在的交点,从而与它们全都在不同的点相交。于是,该递归式为
{ L 0 = 1 L n = L n − 1 + n n > 0 \begin{equation} \begin{cases} L_0 = 1 \\ L_n = L_{n - 1} + n & n > 0 \end{cases} \end{equation} {L0=1Ln=Ln1+nn>0核查后发现,已知的 L 1 L_1 L1 L 2 L_2 L2 L 3 L_3 L3 的值在这里完全正确,因此我们接受这一结果。

2. 解析解

现在需要一个封闭形式的解,但是猜测法在这里显得并不方便,因而我们采用另一种常用方法,即展开法:
L n = L n − 1 + n = L n − 2 + ( n − 1 ) + n = L n − 3 + ( n − 2 ) + ( n − 1 ) + n ⋯ = L 0 + 1 + 2 + ⋯ + ( n − 2 ) + ( n − 1 ) + n = 1 + S n ,其中 S n = 1 + 2 + 3 + ⋯ + ( n − 1 ) + n \begin{split} L_n & = L_{n - 1} + n \\ & = L_{n - 2} + (n - 1) + n \\ & = L_{n - 3} + (n - 2) + (n - 1) + n \\ & \cdots \\ & = L_0 + 1 + 2 + \cdots + (n - 2) + (n - 1) + n \\ & = 1 + S_n,其中 S_n = 1 + 2 + 3 + \cdots + (n - 1) + n \end{split} Ln=Ln1+n=Ln2+(n1)+n=Ln3+(n2)+(n1)+n=L0+1+2++(n2)+(n1)+n=1+Sn,其中Sn=1+2+3++(n1)+n现在我们得到了一个不错的解析解
L n = n ( n + 1 ) 2 + 1 n ≥ 0 \begin{gather} L_n = \frac{n(n + 1)}{2} +1 & n \ge 0 \end{gather} Ln=2n(n+1)+1n0不过我们仍需要构造一个数学归纳法的严格证明
L n = L n − 1 + n = ( 1 2 ( n − 1 ) n + 1 ) + n = 1 2 n ( n + 1 ) + 1 L_n = L_{n - 1} + n = \bigg(\frac{1}{2}(n - 1)n + 1 \bigg) + n = \frac{1}{2} n(n + 1) + 1 Ln=Ln1+n=(21(n1)n+1)+n=21n(n+1)+1

3. 拓展问题

现在假设我们用折线代替直线,每一条折线包含一个 “锯齿”,平面上由 n n n 条这样的折线所界定的区域的最大个数 Z n Z_n Zn 是多少?我们看到
在这里插入图片描述
从这些小的情形出发,就可以发现,一条折线与两条直线的情形相似,只是这 “两条” 直线并没有经过它们的交点延伸出去,从而使得区域相融合了:
在这里插入图片描述
区域 2 2 2 3 3 3 4 4 4 在一条折线的情况下是一个区域,因此我们失去了两个区域。如果我们把一条折线当成两条直线来放置,那么这两条直线的交点(锯齿点)必须放在它们与其它直线的交点之外。这样的话,相比于两条直线,每条折线仅仅损失两个区域,从而
Z n = L 2 n − 2 n = 2 n ( 2 n + 1 ) 2 + 1 − 2 n = 2 n 2 − n + 1 , n ≥ 0 \begin{equation} \begin{split} Z_n & = L_{2n} - 2n \\ & = \frac{2n(2n + 1)}{2} + 1 - 2n \\ & = 2n^2 - n + 1, n \ge 0 \end{split} \end{equation} Zn=L2n2n=22n(2n+1)+12n=2n2n+1,n0比较封闭形式的 ( 2 ) (2) (2) ( 3 ) (3) (3),我们发现对于较大的 n n n
{ L n ∼ 1 2 n 2 Z n ∼ 2 n 2 \begin{cases} L_n \sim \frac{1}{2} n^2 \\ Z_n \sim 2n^2 \end{cases} {Ln21n2Zn2n2所以用折线所能得到的区域是直线所能得到的区域的大约四倍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朔北之忘 Clancy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值