如果给我一个序列X = {x1,x2,....xm}
,那么我将有(2^m)
子序列。
谁能解释一下我如何直观地得出这个公式?
我可以从 3 个元素开始,然后是 4 个元素,然后是 5 个元素,然后得出这个公式,但我认为我不明白。 “2”从哪里来?我不会在这里分成两半或任何东西。
感谢您的帮助。
首先,你所说的叫做set。其次,从一个集合中可以生成的不同子集的数量等于 2^m 是正确的,其中 m 是该集合中的元素数量。如果我们以 3 个元素为例,我们可以得到这个结果:
S = {a, b, c}
现在,为了生成每个子集,我们可以使用二进制数字来模拟元素的存在:
xxx where x is either 0 or 1
现在让我们枚举所有可能性:
000 // empty sub-set
001
010
011
100
101
110
111 // the original set it self!
让我们来011
举个例子。那么第一个数字就是0,a
不属于这个子集,但是b
and c
确实存在,因为它们各自的二进制数字都是 1。现在,给定m(例如上例中的3)二进制数字,可以生成多少个二进制数(子集)?你现在应该回答这个问题了;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)