位向量a=[01101001]为何编码集合A={0,3,5,6}?
位向量编码集合的原理
位向量a=[01101001]编码集合A={0,3,5,6}的逻辑非常直接,核心规则是:
- 位向量的每一位对应一个自然数(从0开始计数),位的位置(索引)就是集合中的候选元素
- 某一位的值为
1,表示对应的元素属于集合;值为0则表示不属于 - 注意:位的索引是从右往左开始数的(对应二进制数的低位到高位)
把01101001从右到左拆解并对应索引:
- 第0位(最右侧):
1→ 元素0属于集合A - 第1位:
0→ 元素1不属于 - 第2位:
0→ 元素2不属于 - 第3位:
1→ 元素3属于集合A - 第4位:
0→ 元素4不属于 - 第5位:
1→ 元素5属于集合A - 第6位:
1→ 元素6属于集合A - 第7位(最左侧):
0→ 元素7不属于
最终筛选出所有值为1的位对应的索引,就是集合A={0,3,5,6}。这种表示方法本质是离散数学中集合特征函数的二进制实现,特征函数会在元素属于集合时返回1,否则返回0,位向量只是把这些结果按顺序排列成了二进制串。
内容的提问来源于stack exchange,提问作者not-a
相关产品推荐
相关产品推荐

