在写代码的时候难免会接触到组合问题,下面谈谈我对上图公式的理解。
拿n=5举例,假设我们有五个布尔型变量(只可能取值为0,1) ,要求它们所有可能的取值数。
来个一题多解吧-----
一、
则它们可能的取值有2^5种(左式),
如下图,相当于一分为二再分为二再...(一共分了五次)。
二、
假设初始把它们全赋值为0(1也一样),所有取值种数实际上就是从这五个0中挑出n个(n=0,1,2,3,4,5)赋为1的挑法数。
那么就是(右式)。
所以左式=右式。
具体应用
通过按行输出右式中按照各项顺序替换后的变量取值序列如
00000
10000
01000
...
可以构造出一个2的n次方行,n列的真值表。
以上
希望有助于记忆和应用。