鸡兔同笼问题
======================

第一部分：故事引入
------------------

农场里有一个笼子，里面关着鸡和兔。农夫数了数，发现笼子里共有 35 个头, 94 只脚。农夫很困惑：到底有多少只鸡，多少只兔呢？请你来帮忙！

**问题场景**

.. mermaid::

   flowchart LR
       A[农夫观察笼子] --> B[数头: 35个]
       A --> C[数脚: 94只]

**求解目标**

.. mermaid::

   flowchart LR
       D[? 多少只鸡] --> E[需要方法求解]
       F[? 多少只兔] --> E

第二部分：直观观察
------------------

动物特征对比
~~~~~~~~~~~~

.. list-table::
   :header-rows: 1

   * - 动物
     - 头数
     - 脚数
   * - 鸡
     - 1
     - 2
   * - 兔
     - 1
     - 4

已知条件与目标
~~~~~~~~~~~~~~

.. mermaid::

   flowchart LR
       H[头数=35] --> X[求: 鸡数x]
       F[脚数=94] --> Y[求: 兔数y]

关系梳理：

- 鸡有 2 条腿，兔有 4 条腿
- 头数总和: 35(每只动物一个头)
- 脚数总和: 94
- 我们需要找到鸡和兔的数量

第三部分：解法一（假设法，适合低年级）
--------------------------------------

核心思路
~~~~~~~~

.. mermaid::

   flowchart LR
       A[假设全是鸡] --> B[计算脚数差]
       B --> C[求出兔数]
       C --> D[求出鸡数]

详细步骤
~~~~~~~~

**步骤1: 假设全是鸡**

.. mermaid::

   flowchart LR
       A[35只全是鸡] --> B["脚数 = 35*2 = 70"]

.. math::

   35 \times 2 = 70 \quad \text{只脚}

**步骤2: 发现差距**

.. mermaid::

   flowchart LR
       A[假设: 70只脚] --> C[差额: 24只脚]
       B[实际: 94只脚] --> C

实际脚数是 94, 比假设多：

.. math::

   94 - 70 = 24

**步骤3: 修正假设**

.. mermaid::

   flowchart LR
       A[差额 24 只脚] --> B[每兔多 2 只脚]
       B --> C["兔数 = 24/2 = 12"]
       C --> D["鸡数 = 35-12 = 23"]

每只兔比鸡多 2 条腿，因此兔的数量为：

.. math::

   \frac{24}{2} = 12

所以鸡的数量为：

.. math::

   35 - 12 = 23

**步骤4: 验证结果**

.. mermaid::

   flowchart LR
       A["鸡: 23*2 = 46脚"] --> C[总计: 94脚]
       B["兔: 12*4 = 48脚"] --> C

验证: 12 * 4 + 23 * 2 = 48 + 46 = 94 (正确)

第四部分：解法二（代入法，适合中年级）
--------------------------------------

核心思路
~~~~~~~~

.. mermaid::

   flowchart LR
       A[设鸡x, 兔y] --> B[由头数得y=35-x]
       B --> C[代入脚数方程]
       C --> D[求解x, y]

详细步骤
~~~~~~~~

设鸡为 :math:`x`，兔为 :math:`y`。

**步骤1: 建立关系**

.. mermaid::

   flowchart LR
       A["x + y = 35"] --> B["y = 35 - x"]
       B --> C[代入方程2]

由头数方程：

.. math::

   y = 35 - x

**步骤2: 代入求解**

.. mermaid::

   flowchart TD
       A["2x + 4(35-x) = 94"]
       B["-2x = -46"]
       C["x = 23, y = 12"]
       A --> B --> C

代入脚数方程：

.. math::

   2x + 4(35 - x) = 94

化简：

.. math::

   -2x + 140 = 94 \\
   -2x = -46 \\
   x = 23

所以 :math:`y = 35 - 23 = 12`

第五部分：解法三（方程法，适合高年级）
--------------------------------------

核心思路
~~~~~~~~

.. mermaid::

   flowchart LR
       A[建立方程组] --> B[选择解法]
       B --> C[代入法/消元法]
       C --> D[求解答案]

详细步骤
~~~~~~~~

建立方程组：

.. math::

   \begin{cases}
   x + y = 35 \\
   2x + 4y = 94
   \end{cases}

**方法一：代入法**

.. mermaid::

   flowchart LR
       A["x = 35-y"] --> B["代入第二式"]
       B --> C["y = 12, x = 23"]

**方法二：消元法**

.. mermaid::

   flowchart LR
       A["方程1 x2"] --> B["相减消元"]
       B --> C["y = 12"]
       C --> D["x = 23"]

答案：鸡 23 只，兔 12 只

第六部分：方法比较
------------------

方法对比
~~~~~~~~

.. list-table::
   :header-rows: 1

   * - 方法
     - 特点
     - 适合年级
   * - 假设法
     - 直观易懂
     - 低年级
   * - 代入法
     - 步骤清晰
     - 中年级
   * - 方程法
     - 系统严谨
     - 高年级

殊途同归
~~~~~~~~

.. mermaid::

   flowchart LR
       A[假设法] --> D[答案: 鸡23, 兔12]
       B[代入法] --> D
       C[方程法] --> D

第七部分：互动练习
------------------

题 1: 鸡兔同笼问题（变式）
~~~~~~~~~~~~~~~~~~~~~~~~~

**已知条件**

.. mermaid::

   flowchart LR
       A[头数: 40] --> C[求: 鸡? 兔?]
       B[脚数: 100] --> C

.. math::

   \begin{cases}
   x + y = 40 \\
   2x + 4y = 100
   \end{cases}

.. plot::

   import numpy as np
   import matplotlib.pyplot as plt
   
   x = np.linspace(0, 40, 100)
   y1 = 40 - x
   y2 = (100 - 2*x) / 4
   
   fig, ax = plt.subplots(figsize=(8, 6))
   ax.plot(x, y1, 'b-', linewidth=2, label='x + y = 40')
   ax.plot(x, y2, 'r-', linewidth=2, label='2x + 4y = 100')
   
   ax.plot(30, 10, 'go', markersize=12, label='Solution (30, 10)')
   ax.annotate('Chicken=30, Rabbit=10', xy=(30, 10), xytext=(20, 20),
               arrowprops=dict(arrowstyle='->', color='green'),
               fontsize=12, color='green')
   
   ax.set_xlabel('Chicken (x)', fontsize=12)
   ax.set_ylabel('Rabbit (y)', fontsize=12)
   ax.set_title('Problem 1: Graphical Solution', fontsize=14)
   ax.legend(loc='upper right')
   ax.grid(True, alpha=0.3)
   ax.set_xlim(0, 40)
   ax.set_ylim(0, 40)
   
   plt.tight_layout()
   plt.show()

答案：鸡 30 只，兔 10 只

题 2: 桌椅问题
~~~~~~~~~~~~~

**已知条件**

.. mermaid::

   flowchart LR
       A[桌子: 4腿] --> C[求: 桌子?]
       B[椅子: 3腿] --> D[求: 椅子?]
       E[总数: 30件] --> C
       F[总腿: 100] --> D

.. math::

   \begin{cases}
   x + y = 30 \\
   4x + 3y = 100
   \end{cases}

.. plot::

   import numpy as np
   import matplotlib.pyplot as plt
   
   x = np.linspace(0, 30, 100)
   y1 = 30 - x
   y2 = (100 - 4*x) / 3
   
   fig, ax = plt.subplots(figsize=(8, 6))
   ax.plot(x, y1, 'b-', linewidth=2, label='x + y = 30')
   ax.plot(x, y2, 'r-', linewidth=2, label='4x + 3y = 100')
   
   ax.plot(10, 20, 'go', markersize=12, label='Solution (10, 20)')
   ax.annotate('Tables=10, Chairs=20', xy=(10, 20), xytext=(15, 25),
               arrowprops=dict(arrowstyle='->', color='green'),
               fontsize=12, color='green')
   
   ax.set_xlabel('Tables (x)', fontsize=12)
   ax.set_ylabel('Chairs (y)', fontsize=12)
   ax.set_title('Problem 2: Graphical Solution', fontsize=14)
   ax.legend(loc='upper right')
   ax.grid(True, alpha=0.3)
   ax.set_xlim(0, 30)
   ax.set_ylim(0, 30)
   
   plt.tight_layout()
   plt.show()

答案：桌子 10 张，椅子 20 把

题 3: 铅笔和钢笔问题
~~~~~~~~~~~~~~~~~~~

**已知条件**

.. mermaid::

   flowchart LR
       A[铅笔: 1元/支] --> C[求: 铅笔?]
       B[钢笔: 3元/支] --> D[求: 钢笔?]
       E[总数: 40支] --> C
       F[总价: 80元] --> D

.. math::

   \begin{cases}
   x + y = 40 \\
   x + 3y = 80
   \end{cases}

答案：铅笔 20 支，钢笔 20 支

题 4: 公交车和小汽车问题
~~~~~~~~~~~~~~~~~~~~~~~

**已知条件**

.. mermaid::

   flowchart LR
       A[公交: 40轮] --> C[求: 公交?]
       B[汽车: 4轮] --> D[求: 汽车?]
       E[总数: 20辆] --> C
       F[总轮: 296] --> D

.. math::

   \begin{cases}
   x + y = 20 \\
   40x + 4y = 296
   \end{cases}

答案：公交车 6 辆，小汽车 14 辆

题 5: 鸡兔鸭同笼问题（进阶）
~~~~~~~~~~~~~~~~~~~~~~~~~~~

**已知条件**

.. mermaid::

   flowchart LR
       A[鸡: 2腿] --> D[求: 鸡?]
       B[兔: 4腿] --> E[求: 兔?]
       C[鸭: 2腿] --> F[求: 鸭?]
       G[总数: 60只] --> D
       H[总腿: 160] --> E
       I[鸡比鸭多10只] --> F

.. math::

   \begin{cases}
   x + y + z = 60 \\
   2x + 4y + 2z = 160 \\
   x - z = 10
   \end{cases

答案：鸡 25 只，兔 20 只，鸭 15 只

第八部分：小结
--------------

知识结构
~~~~~~~~

.. mermaid::

   flowchart TB
       A[鸡兔同笼问题] --> B[假设法]
       A --> C[代入法]
       A --> D[方程法]

解题步骤
~~~~~~~~

.. mermaid::

   flowchart LR
       A[分析问题] --> B[选择方法]
       B --> C[求解]
       C --> D[验证答案]

要点总结
~~~~~~~~

1. 鸡兔同笼问题是典型的应用题，核心是找到头数和腿数的关系
2. 三种解法各有优劣
3. 数学的魅力在于不同路径可以通向同一个答案
4. 解题后要验证结果

思考题
------

如果笼子里有若干只蜘蛛（8条腿）、蜻蜓（6条腿）和蝉（6条腿），共 20 只，总共 130 条腿。已知蜘蛛比蝉多 1 只。问每种昆虫各有多少只？

**已知条件**

.. mermaid::

   flowchart LR
       A[蜘蛛: 8腿] --> D[求: 蜘蛛?]
       B[蜻蜓: 6腿] --> E[求: 蜻蜓?]
       C[蝉: 6腿] --> F[求: 蝉?]
       G[总数: 20只] --> D
       H[总腿: 130] --> E
       I[蜘蛛=蝉+1] --> F

**解题提示**

.. mermaid::

   flowchart LR
       A[设蝉为z只] --> B[蜘蛛=z+1只]
       B --> C[蜻蜓=19-2z只]
       C --> D[列腿数方程求解]
