《算法设计与分析》-第2章递归与分治策略剖析.ppt

《算法设计与分析》-第2章递归与分治策略剖析.ppt

第 2 章 递归与分治策略 第 2 章 递归与分治策略 第 2 章 递归与分治策略 鸽笼原理 (抽屉原理, Pigeonhole Principle ) 如果有 5 个鸽子笼,养鸽人养了 6 只鸽子,那么当鸽子飞回笼中后,至少有一个笼子中装有 2 只或 2 只以上的鸽子(或者说不少于 2 只鸽子)。这个简单的事实就是著名的鸽笼原理(抽屉原理)。鸽笼原理的证明很简单,用反证法:假定不满足“至少有一个笼子中装有 2 只或 2 只以上的鸽子(或者说不少于 2 只鸽子)”,那么所有笼子里的鸽子数都少于 2 ,则鸽子的总数最多为 5,和已知的 6 只鸽子矛盾。得证。 第 2 章 递归与分治策略 鸽笼原理一般描述:有 n + 1 件或 n + 1 件以上的物品要放到 n 个抽屉中,那么至少有一个抽屉里有两个或两个以上物品。应用抽屉原理要注意识别“鸽笼”和“鸽子”,鸽子的数目一定要大于鸽笼的个数。 第 2 章 递归与分治策略 【例 1】任意 13 人中至少有两个人属相相同。 【解】 属相只有 12 种:鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。由于人数(13)比属相数(12)多,根据鸽笼原理至少有两个人属相相同(在这里,把 13 人看成 13 只“鸽子”,把 12 种属相看成 12 个“鸽笼”)。 第 2 章 递归与分治策略 第 2 章 递归与分治策略 【例 3】有 5 个人,每人都从装

文档评论(0)

1亿VIP精品文档

相关文档