菜单上的十二顿饭,和一个不许变心的前提
两道开胃菜、三道主菜、两道甜品,一共几种吃法?答案是 12,乘法一按就出来。可这个乘法能成立,全靠一个谁都不会多看一眼的条件——后一步能选什么,不能看前一步选了什么。
2 × 3 × 2 = 12:乘法原理要求各步独立
English(原书原文)
You are eating at Émile's restaurant and the waiter informs you that you have (a) two choices for appetizers: soup or juice; (b) three for the main course: a meat, fish, or vegetable dish; and (c) two for dessert: ice cream or cake. How many possible choices do you have for your complete meal? We illustrate the possible meals by a tree diagram. Your menu is decided in three stages—at each stage the number of possible choices does not depend on what is chosen in the previous stages: two choices at the first stage, three at the second, and two at the third. From the tree diagram we see that the total number of choices is the product of the number of choices at each stage. In this example we have possible menus.
Our menu example is an example of the following general counting technique.
Our menu example is an example of the following general counting technique. There are ways to carry out the first stage; for each of these ways, there are ways to carry out the second stage; for each of these ways, there are ways to carry out the third stage, and so forth. Then the total number of ways in which the entire task can be accomplished is given by the product .
一份菜单,十二顿饭
Émile 先生的餐厅有个规矩:每顿饭按固定的三步走。
第一步,开胃菜,两样——汤,或者果汁。
第二步,主菜,三样——肉、鱼、蔬菜。
第三步,甜品,两样——冰淇淋,或者蛋糕。
问:一个客人从头到尾,能吃到多少种不同的组合?
十二种。这个数来得太容易了,容易到学生基本不会看它第二眼。
但这一篇要说的恰恰是:这个"容易"是有条件的,而条件被写在原书那句几乎没人念的话里——
at each stage the number of possible choices does not depend on what is chosen in the previous stages
翻译过来:主菜有三样可选,不管你前面点的是汤还是果汁;甜品有两样,不管你前面点了什么主菜。
一句话说:后一步的选项数,不许看前一步选了什么。
整个乘法原理,就架在这句话上。这句话一旦不成立, 当场作废。后面我们会看到它怎么废。
这道题在问什么
先看清楚这道题在问什么。
它不是在问"哪一顿好吃",也不是在问"我怎么选"。它问的是:一共有多少种不同的完整菜单。 一个纯粹的数数问题。
而它的价值在于——它是整个组合计数的地基。
你往后学Probability 会遇到的每一样计数工具,本质都是这一个动作的变形:
- 三位数的电话号码有多少个?十步、每步十种——。
- 一副牌洗出多少种顺序?五十二步,每步的可选项比上一步少一个——。
- 四个人排成一队有多少种队形?四步,每步少一个人——。
它们全是"分成阶段,每阶段数一数,乘起来"。
原书把这句话提炼成了一个带名字的东西,叫 Counting Technique(计数法则)。名字很朴素,能耐很大。
算一下
第一步:先承认一件事——直接数是数不出来的。
十二种,你可以硬列:汤-肉-冰淇淋、汤-肉-蛋糕、汤-鱼-冰淇淋、汤-鱼-蛋糕……
列到第四五种就开始眼花。而且这只是三步;如果是五步、十步呢?穷举不是办法。
第二步:换一个看法——把选择画成一棵树。
第一步是树根,长两根枝(汤、果汁)。
每一根枝上,各长三根枝(肉、鱼、蔬菜)——注意这里是关键:汤这根枝上长三根,果汁那根上也长三根。数目一样,谁也不多谁少。
每一根主菜的枝上,再各长两根(冰淇淋、蛋糕)。
数一数最末梢有多少片叶子:。
为什么是乘不是加? 因为每一片"汤"的叶子,都各自拖着三根主菜的枝。乘法的意思是"每一样都要配一遍",加法的意思是"要么这个要么那个"。这里显然每样都要配。
第三步:把树抽走,留下法则。
个阶段,第 步有 种选法。乘起来。
看起来完事了。但这一篇真正值得花时间的地方还没开始。
前提一破,乘法当场作废
现在改一改 Émile 的菜单,只改一个字。
套餐规则:如果点了汤,主菜只能选鱼。
别的都不变:开胃菜还是两样,主菜还是三样,甜品还是两样。
问:现在有几种菜单?
学生的本能会是 ,或者想一想觉得"好像少了几个"。
老实数:规则只约束"点汤"这一边——点汤的人主菜只剩鱼一样可选,甜品仍两样,所以是 种; 点果汁的人不受影响,还是三样主菜、两样甜品,所以是 种。两边合起来:
八种,不是十二种。 而且注意这个式子——加号出现了。
这就是本篇最该记住的一句话:
选项之间彼此独立时,用乘;一旦某个选项跟着前面变,就得拆开分段算,段与段之间用加。
和 之间的差别,就是"能不能用一个乘法搞定"的分水岭。 学生以后遇到的所有"为什么不能直接乘",根上都在这件事。
课堂上一句话点透:" 里那个 3,凭什么点汤点果汁都是 3?"
顺带一份概率版的菜单
原书紧接着还给了同一家餐厅的另一组数据,这次不是数数,是概率。
店主观察了很久,发现:
- 八成客人点汤,两成点果汁。
- 点汤的客人里,五成选肉、三成选鱼、两成选蔬菜。
- 点果汁的客人里,三成选肉、四成选鱼、三成选蔬菜。
问:随机进来一位客人,他点肉的概率是多少?
老办法,分段算再加起来:
照着算,另两道菜是
验证一下:。一道菜都没漏。这个"加起来等于 1"是好机会,让学生养成算完必验的习惯。
这里先埋一个伏笔。
如果"点汤"和"点肉"互不相干(独立),那么在一个点了肉的客人里,他点汤的概率应该还是 。
实际是多少?
不是 ,是 。 也就是说,点肉食的客人更可能点了汤——这很合理,肉配汤比肉配果汁更常见。
这个数怎么来的,要等学到贝叶斯才讲得透。但那时的伏笔,从这里就埋下了: 两条信息一旦有了牵连,概率就不再是各算各的。 跟前面"点汤就不能点鱼"是同一种病,只是病得轻一些。
在课堂上怎么办
这个例子的课堂上手极快,但有一个动作必须做:让学生亲手把前提打破一次。
第一遍照着原书来。让四个学生站起来,每人负责一种开胃菜和主菜的组合,问全班"一共几种?"——学生会喊十二。
然后改规则,只改一句:"点汤的只能配鱼。"
这时候会有分歧。一部分学生还是喊十二,另一部分开始挠头。让他们分组自己数,把两边的答案都写到黑板上。
等 和 并排出现在黑板上的时候,问一句:"差的那四种去哪了?"——让学生指出来:汤-肉、汤-蔬菜、汤-肉-蛋糕、汤-蔬菜-蛋糕,这四种被规则吃掉了。
最后收尾那一句是这节课的全部意义所在:
"乘法不是理所当然的。它是一张契约——你答应我每步的选择数不依赖前面,我才让你乘。"
如果时间还够,可以再让学生自己设计一条"让乘法失效"的规则,互相出题。他们会设计出比"点汤只能配鱼"刁钻得多的条件,而每设计一条,就对前提多一分敏感。
学生最容易栽在哪
课堂提问
- Émile 的菜单加一道菜序列(比如再加两道饮料),变成 2-3-2-4-3,共多少种菜单?先猜,再算。
- 现在难度升级:规则改成"点汤就不能点肉,点果汁就不能点蔬菜"。还剩几种?提示:先画树,别硬列。
- 这道题里 ,而"点汤"本身的概率只有 。为什么条件之后反而变大了?这个数说明点肉的客人有什么倾向?