让为运算和整数集合联系起来,牛掰而又有趣的操作,拜服能够将二者联系起来的前辈。废话不多说了,我将尽力将描述,以求大家能够更好的运用。
1 一个例子
一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。那么这是如何实现的呢?我们以一个集合{1,5,6,8} 为例进行说明,其对应用二进制表示为:01 01 10 00 10。用表格进行理解即为:
就是哪个整数在集合中,那么数字对应大小的二进制所在的位的值就为1。
这样表示有什么好处呢?能够用来做什么?
2 应用
2.1 从集合中插入、删除、判断某元素是否在集合中
插入:
假设原集合a为{1, 5, 6, 8},其对应的二进制可以表示为01 01 10 00 10:我们想在原集合中插入一个数字2,那么在python中可以用下面代码进行实现:
a = 0b0101100010
b = a | (1<<2) #把2插入到集合中
print(bin(b)) #0b101100110
我们可以发现插入数字2就是将二进制对应序号为2的位置的值置为1,表示该集合中有一个值为2的整数。
删除:
假定我们把上面得到的集合b{1 ,2 ,5 ,6 ,8}中的元素5从集合中删除。可以用下面代码进行实现:
a = 0b0101100010
b = a | (1<<2) #把2插入到集合中
print(bin(b)) #0b101100110
c = b & ~(1<<5) #把5从集合中删除
print(bin