分享

组合计数技巧:对应的思想

 长沙7喜 2019-06-26

有很多看似复杂的数学问题,通过转换思考角度就会变得非常简单。今年我们就来学习一种叫做“对应”的数学思想。

所谓的对应,就是通过在不同类型的事物之间建立对应关系,运用对应把要解决的问题进行转化,以达到化繁为简的目的。对应的思想可以帮助我们处理很多用常规方法无法下手或者不容易解决的问题。

例1:有很多个点组成的格子图,选取4个点可以画出一个长方形(只有水平线和垂直线可以作为长方形的边)。请问这些点一共可以画出多少个长方形(包括正方形)?

解法1:枚举法。

很多同学不屑用枚举法解题,觉得笨拙,缺乏技术含量,但当你遇到问题完全想不到巧妙办法的时候,枚举也不是什么坏事啊。

第一步:从最左边宽为1的长方形开始计算,宽不变,长度从上往下依次减少,这样的长方形一共有8个;然后往右依次是7、6、5、4、3、2、1;所以这样的长方形一共是8+7+6+5+4+3+2+1=36个。如下图所示:

第二步:宽度不变,还是1,最下面的边往上移动一格,长度从上往下依次减少,这样的长方形一共有7个;然后往右依次是6、5、4、3、2、1;所以这样的长方形一共是7+6+5+4+3+2+1=28个。如下图所示:

按照这样的规律,我们不难发现,边长为1的长方形数量为36+28+21+15+10+6+3+1=120个。这里的每一个数字都是三角形数。

第三步:同理可推出,宽为2的长方形数量为28+21+15+10+6+3+1=84个;宽为3的长方形数量为21+15+10+6+3+1=56个;宽为4的长方形数量为15+10+6+3+1=35个;宽为5的长方形数量为10+6+3+1=20个;宽为6的长方形数量为6+3+1=10个;宽为7的长方形数量为3+1=4个;宽为8的长方形数量为1个。

综上,全部的长方形数量为120+84+56+35+20+10+4+1=330个。

解法2:对应的数学思想。

我们知道,满足条件的长方形有很多个,比如下图的两种情况都是:


    我们经过仔细观察可以发现,在这些长方形里,其实有两大类:一类是四条边最终会在三角形的斜边上有四个映射点;另一类是四条边最终只会在三角形的斜边上有三个映射点


第一类,四条边最终会在三角形的斜边上有四个映射点,相当于在三角形斜边的10个点中取4个点的组合计数问题,即C(10,4)=10×9×8×7÷4!=210种;第二类,四条边最终只会在三角形的斜边上有三个映射点,相当于在三角形斜边的10个点中取3个点的组合计数问题,即C(10,3)=10×9×8÷3!=120种;合起来就是210+120=330种。

能否再简单一些呢?当然可以。假如在这个三角格点阵的斜边外面再加一条11个点的斜边,那么前面两类情况都会有4个点映射到这条11个点的斜边上,因此问题就变为了在新的三角形斜边的11个点中取4个点的组合计数问题,即C(11,4)=11×10×9×8÷4!=330种。就是这么简单!

那么问题来了,为何C(10,3)+C(10,4)=C(11,4)呢?这个问题我在其他的文章里解释过,道理其实很简单。

从A~K这11个字母里选4个字母的计数问题,我们可以分为两类:一类是A入选,第二类是A没有入选。在前一种情况下,我需要在剩下的10个字母里再选取3个,就是C(10,3);而后一种情况下,我必须在剩下的10个字母里再选取4个,就是C(10,4);两种情况合起来,就是从A~K这11个字母里选4个字母的全部结果了。

例2:把边长为1的等边三角形ABC的三条边十等分,过各分点在三角形ABC内作各边的平行线,得到的图形叫做等边三角形ABC的格点阵。求其中所有平行四边形的个数?

解答:这个问题如果直接数一数的话,将会是一件非常费事的事情,这里我们同样可以用对应的思想去解答。

我们可以通过延长平行四边形的四条边,在正三角形的BC边上建立一种映射关系。

下面这种情况,即在BC边上的11个点选3个点,一共有C(11,3)=11×10×9÷3!=165种情况。

下面这种情况,即在BC边上的11个点选4个点,一共有C(11,4)=11×10×9×8÷4!=330种情况。

两种情况相加,一共495种情况,但因为有三条边,所以最后的答案还要乘以3,即495×3=1485个平行四边形。

当然,有了例1的解释后,我们可以把上面两种情况进行简化。在BC边下再虚拟一条有12个点的虚拟边B’C’(如下图所示),这样无论是哪种情况,都能在这条12点的虚拟边上映射出4个点,即C(12,4)=12×11×10×9÷4!=495种情况。

例3:在集合{1,2,3,4,5,6,7,8,9,10}中,有多少个包含两个元素的子集?

解答:这个问题还可以换个角度问,从1~1010个自然数中,任意选出两个数,有多少种不同的可能性?虽然前者看似集合问题,后者看似组合问题,但本质上其实是一个意思。

常规的解法我就不解释了,读者朋友们随便找一本相关的书都有介绍。今天我们换个角度来看这个问题,如何从直观上来理解两元素子集的数量?

在很多场合,我都会讲解三角形数,我也多次提过这是理解很多数学问题的一个重要角度。很可惜,国内的教科书并不重视这个问题。


所谓的“三角形数”,就是类似136101521、……这样能表示成等边三角形的数。这里要强调的是,必须是表示成“等边三角形”的数才能称为三角形数,其他形状的三角形不行。

现在我把1~1010个数横着排成一排,然后每两个数之间摆放一个圆圈,依次往上。如图所示:

这个图依旧是一个等边三角形,那么构建这样一个等边三角形有什么用处呢?有些读者可能已经发现了一个有趣的现象:无论我们如何选取1~10中的任意两个数,都能向上画出一个等边三角形。比如:

这是一个有趣的发现。我们经过整理可以总结如下:

从上面的图,我们可以非常直观地得到这个问题的答案就是:12345678945

其实,我们从组合计数的计算角度也能知道为什么是这样的结果。从1~1010个自然数中,任意选出两个数,可能性就是102,即C(10,2)10×9÷2(19)×9÷2

这个问题还可以怎么看呢?接下来,让我们通过笛卡尔坐标的角度再来看一下这个问题。

假设有一个10×10的点阵图。其中红点表示的坐标就是(2,8)如下图所示:

把这个图形稍作变形,我们会发现:假如坐标为(2,8)的红点以白色对角线为对称轴,在这条对称轴的另一边还有一个坐标为(8,2)的红点,这两个坐标代表的1~10个自然数的两个元素的子集是相同的,即{2,8}{8,2},而黄点则分别代表了这条对称轴上的第2个点和第8个点。

于是,我们可以发现,这条对称轴的左上方或者右下方各有12345678945个点,每个点都对应着1~1010个自然数的一个两元素的子集。这45个点可以这样计算:(10×1010)÷245。因此,总个数为任意多个元素的两元素子集都可以按照这样的方法计算得到:(N×NN)÷2N×(N1)÷2

可谓是万变不离其宗,我们又一次殊途同归了。

小结:在上面这三个问题中,我们运用了数学中一个很重要的“对应”思想,把正方形、平行四边形以及集合子集的计数问题通过点的映射,转换为映射点的计数问题;然后,用组合计数的基本原理就把这个问题轻松解决了。

数学问题的美丽之处,通常就在于我们总是可以用很多种不同的角度去思考并得到解决方案。如果只有一个解法的问题是不值得我们去花时间思考的,如果一个问题我们能得到很多种不同的解法,那么就胜过做很多个技术含量很低的题目。在各种解法中,我们又以简单的解法为上,简答的就是美丽的!

写给青少年的组合数学系列文章:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多