zoukankan      html  css  js  c++  java
  • 分类讨论的经典之作: 一道烧脑的数学竞赛压轴题解法赏析

     

    本题解法颇为复杂, 因此谓之"烧脑". 期待有简单解法的数学爱好者交流讨论.

    来信请发至: zhaoyin.math@foxmail.com

     

     

     

    Whitlock 先生在数学课上与学生们做金钱游戏. 首先, Whitlock先生给全班学生按照 $1-n$ 编号, 其中 $n ge 2$. 接着, 他给第 $i$ 名学生 $m_i$ 元, 其中 $1 le i le n$, $m_i$ 是非负整数且 $m_1 + m_2 + cdots + m_n ge 1$.

    若某个学生的钱不少于其他任何人, 则被称为给予者; 反之, 若某个学生的钱不多于其他任何人, 则被称之为接受者. 游戏规则如下: 每一个给予者给每位接受者1元(这一过程可能会导致该给予者账户金额为负值). 这个过程将反复进行直至出现以下两种情形之一:

    a. 规则一: 所有学生账户金额相同;

    b. 规则二: 所有学生账户金额情形与之前某次情形相同.

    1. 试给出 $n, m_1, m_2, cdots, m_n$ 之适当取值, 并说明: 若游戏过程中出现至少有一名学生账户金额为负值, 则该游戏将按照规则二之情形结束.

    2. 假设存在 $k_n$, 满足 $m_1 + m_2 + cdots + m_n ge k_n$ 且不会出现任何一个学生账户金额为负值, 求出 $k_n$ 之最小可能值.

    3. 假设 $n = 5$, 若游戏结束时所有学生账户金额相同, 求出所有满足条件的五元数组 $(m_1, m_2, m_3, m_4, m_5)$, 其中 $m_1 le m_2 le m_3 le m_4 le m_5$.

     

    解答:

    前两问难度不大, 只需要给出合理模型即可. 第三问可以依据前两问的线索继续寻找答案, 但是需要进行比较复杂的分类讨论. 具体解法如下:

    1. 令 $n = 5$, $(m_1, m_2, m_3, m_4, m_5) = (0, 0, 0, 1, 2)$. 由题意得 $$(0, 0, 0, 1, 2) ightarrow (1, 1, 1, 1, -1) ightarrow (0, 0, 0, 0, 3) ightarrow (1, 1, 1, 1, -1).$$ 第二次出现 $(1, 1, 1, 1, -1)$, 故游戏结束.

     

    2. 仍考虑 $n = 5$ 的情形, 当出现账户金额负值时, 五人钱数总和最大值为 $$(m_1, m_2, m_3, m_4, m_5) = (2, 2, 2, 2, 3) Rightarrow m_1 + m_2 + m_3 + m_4 + m_5 = 11.$$ 若钱数之和为12, 则可保证至少有1人不少于4元或至少有2人有3元. 无论哪种情形, 都可确保不出现账户负值.

    下面考虑 $n$ 的情况. 类似的, 当账户金额出现负值时, $n$ 名学生钱数总和最大值为 $$(m_1, m_2, cdots, m_n) = (n-3, n-3, cdots, n-2)Rightarrow (n-3)(n-1) + (n - 2) = n^2 - 3n + 1,$$ 游戏第一轮后将导致最后一人钱数变为 $n-2 - (n - 1) = -1$. 若总钱数增加1元, 则可以保证至少有1人不少于 $(n-1)$ 元或至少有2人有 $(n-2)$ 元. 无论哪种情形, 都可以确保不出现账户负值.

    因此 $k_n = n^2 - 3n + 2$.

     

    3. 若五人最后钱数相等, 即总钱数必为5的倍数, 不妨设之为 $5m$. 因此游戏结束时每个学生都恰有 $m$ 元. 此外, 在游戏过程中若有人钱数为 $m$, 则将保持至游戏结束不发生变化(即只有钱数非 $m$ 的人之间会互相给予或接受). 下面依据分别有四个人钱数相等, 三个人钱数相等及两个人钱数相等来讨论各种不同情形:

    (1) $m_1 = m_2 = m_3 = m_4 < m_5$ 或 $m_1 < m_2 = m_3 = m_4 = m_5$ 时. 前者只需第五个人每次给前四人各1元直至每人都有 $m$ 元. 后者结论类似.

    (2) $m_1 < m_2 = m_3 = m_4 < m_5$ 时. 第五人每次给第一人1元直至 $m_1 = m_2 = m_3 = m_4$, 此时即为第一种情形.

    (3) $m_1 = m_2 = m_3 < m_4 le m_5$ 时. 前三人在游戏过程中始终保持钱数相同, 即同为给予者, 接受者或既非给予者亦非接受者(不妨称为中立者).

    a. 若三人同为给予者或接受者, 且其余两人钱数相同时, 则此三人每次增加或减少2元, 最终五人钱数相同(若不然,假设三人钱数只在 $m-1, m+1$ 之间, 则其余两人钱数之和为奇数).

    b. 若三人同为给予者或接受者, 且其余两人钱数不同时, 不妨设之为 $m_1 = m_2 = m_3 < m_4 < m_5$, 易知第五个人持续给前三人钱直至 $m_1 = m_2 = m_3 = m_4 < m_5$, 此即为第一种情形.

    c. 若三人同为中立者, 此即为第二种情形.

    (4) $m_1 le m_2 < m_3 = m_4 = m_5$ 时. 此时有两种情况:

    a. $m_1 = m_2 < m_3 = m_4 = m_5$ 时, 后三人一直为给予者, 直至五人钱数相同.

    b. $m_1 < m_2 < m_3 = m_4 = m_5$ 时, 与第三种情形对称, 因此最终五人钱数相同.(5) $m_1 = m_2 < m_3 < m_4 = m_5$ 时. 令 $k = min{m_3 - m_2, m_4 - m_3}$.

    a. 若 $k$ 为偶数, 如 $(0, 0, 9, 13, 13)$ 或 $(0, 0, 2, 9, 9)$, 则经过 ${kover2}$ 次操作后出现三人钱数相同, 即为第三或第四种情形.

    b. 若 $k$ 为奇数, 如 $(0, 0, 1, 7, 7)$ 或 $(0, 0, 6, 7, 7)$, 则在游戏过程中必出现 $t_1 = t_2 < t_3 < t_4 = t_5$ 且 $t_3 = t_2 + 1$ (或其对称情形 $t_4 = t_3 + 1$). 此时 $t_4 = t_5 = t_2 + 5p+ 2$, 其中 $p$ 是非负整数. 若 $p = 0$, 则出现 $(m-1, m-1, m, m+1, m+1)$ 之情形. 若 $p ge 1$ 则有 $$(t_2, t_2, t_2+1, t_2+5p+2, t_2 + 5p+2)$$ $$ ightarrow (t_2+2, t_2+2, t_2+1, t_2+5p, t_2 + 5p)$$ $$ ightarrow (t_2+2, t_2+2, t_2+3, t_2+5p-1, t_2 + 5p-1)$$ 若 $p = 1$, 则出现 $(m-1, m-1, m, m+1, m+1)$ 之情形. 若 $p ge 1$, 则可继续上述过程. 因此无论 $p$ 取何值, 均出现 $(m-1, m-1, m, m+1, m+1)$ 之情形, 即不可能五人钱数相等.

    (6) $m_1 = m_2 < m_3 = m_4 < m_5$ 时. 令 $k = m_5 - m_4$.

    a. 若 $k$ 为偶数, 则经过 ${kover2}$ 次操作后出现后三人钱数相同或前四人钱数相同, 如 $(0, 0, 7, 7, 11)$ 或 $(0, 0, 1, 1, 3)$. 无论哪种都与前面讨论情形相同, 即最终五人钱数相等.

    b. 若 $k$ 为奇数, 如 $(0, 0, 5, 5, 10)$, 经过三次操作后变为 $(3, 3, 5, 5, 4)$, 即为第五种情形中后一种情况, 即不可能出现五人钱数相等. 又如 $(0, 0, 2, 2, 11)$, 经过两次操作后变为 $(2, 2, 2, 2, 7) ightarrow (3,3,3,3,3)$, 即可以保证最终五人钱数相同. 以上两个例子区别在于 $m_3 - m_2$ 与 $k$ 之大小关系不同. 即当 $k > 2(m_3 - m_2)$ 时, 可出现五人钱数相同(暨会出现前四人相同情形); 反之, 当 $k < 2(m_3 - m_2)$ 时, 不能出现五人钱数相同(暨第五种情形中后一种情况).

    (7) $m_1 < m_2 = m_3 < m_4 = m_5$ 时. 通过操作后出现前三人钱数相同或后四人钱数相同或 $m_1 = m_2 < m_3 < m_4 = m_5$ 之情形.

    下面考虑将上述七种情形应用于 $m_1 le m_2 le m_3 le m_4 le m_5$ 之一般情形. 易知, 第一步操作一定会出现 $m_5$ 给予 $m_1$ (否则五人钱数已经相等), 关键在于操作后是否出现 $m_1 = m_2$ 或 $m_5 = m_4$. 因此, 考虑比较 $m_2 - m_1$ 与 $m_5 - m_4$ 之大小关系.

    不妨设 $m_2 - m_1 le m_5 - m_4$. 首先 $m_5$ 给予 $m_1$ 钱数为 $m_2 - m_1$ 使之与 $m_2$ 相同(可视作若干步操作), 即 $$(m_1, m_2, m_3, m_4, m_5) ightarrow (m_2, m_2, m_3, m_4, m_5^prime),$$ 其中 $m_5^prime = m_5 - m_2 + m_1$. 注意此时实际上是前述讨论之第五, 第六两种情形, 暨 $m_1 = m_2 le m_3 le m_4 le m_5$. 令 $k = m_5^prime - m_4$.

    (1) 若 $k ge 2(m_3 - m_2)$, 则通过操作可使得 $m_1 = m_2 = m_3$, 即出现三人钱数相等之情形. 依据前述讨论可知, 最终五人钱数相等.

    (2) 若 $k < 2(m_3 - m_2)$ 且为偶数(暨 $m_1 + m_2 + m_4 + m_5$ 是偶数), 则通过 ${kover2}$ 步操作后 $m_4 = m_5^prime$, 此时前两人钱数均为 $$m_2 + {m_5^prime - m_4 over2} = {m_1 + m_2 + m_5 - m_4over2}.$$ 由前述第五种情形之讨论可知, 当且仅当 $minleft{m_4 - m_3, m_3 - {m_1 + m_2 + m_5 - m_4over2} ight}$ 是偶数时最终五人钱数相等.

    (3) 若 $k < 2(m_3 - m_2)$ 且为奇数, 则通过若干步操作后, $m_4 = m_5^prime - 1$. 此后 $m_4, m_5$ 轮流给予 $m_1, m_2$ 直至 $m_1 = m_2 = m_3$ 或 $m_4, m_5$ 中的一个与 $m_3$ 钱数相等.

    a. 若为前者, 即 $m_4 + m_5 - 2m_3 > 2m_3 - m_1 - m_2$, 则由前述讨论可知最终五人钱数相等.

    b. 若为后者, 即 $m_1 = m_2 < m_3 = m_4 < m_5$, 则由前述第六种情形讨论可知, 五人钱数不可能相等.

    同理, 可对 $m_2 - m_1 > m_5 - m_4$ 做类似讨论.

    综上, 当游戏结束时出现五人钱数相等的情形为:

    (1) $m_2 - m_1 le m_5 - m_4$ 且满足以下三个条件之一:

    a. $m_5 - m_4 ge 2m_3 - m_2 -m_1$;

    b. $m_1 + m_2 + m_4 + m_5$ 和 $minleft{m_4 - m_3, m_3 - {m_1 + m_2 + m_5 - m_4over2} ight}$ 均为偶数;

    c. $m_1 + m_2 + m_4 + m_5$ 为奇数且 $m_4 + m_5 - 2m_3 > 2m_3 - m_1 - m_2$.

    (2) $m_2 - m_1 > m_5 - m_4$ 且满足以下三个条件之一:

    a. $m_2 - m_1 ge m_4 + m_5 - 2m_3$;

    b. $m_1 + m_2 + m_4 + m_5$ 和 $minleft{m_3 - m_2, {m_1 - m_2 + m_4 + m_5over2} - m_3 ight}$ 均为偶数;

    c. $m_1 + m_2 + m_4 + m_5$ 为奇数且 $2m_3 - m_1 - m_2 > m_4 + m_5 - 2m_1$.

     

     

     

     

     

    作者微信二维码:

     


    作者:赵胤
    出处:http://www.cnblogs.com/zhaoyin/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    kubernetes上安装MongoDB-3.6.5集群副本集方式
    kubernetes Metrics-server 安装
    kubenetes 应用更新
    filebeat+logstash通过zabbix微信报警
    Redis持久化及复制
    kubernetes rabbitmq 集群安装配置
    kubernetes elasticsearch2.4 集群安装
    kubernetes --> kube-dns 安装
    详解Javascript中的Object对象
    提高代码质量:如何编写函数
  • 原文地址:https://www.cnblogs.com/zhaoyin/p/6045526.html
Copyright © 2011-2022 走看看