什么是计算位图系列的更好方法?

时间:2015-02-24 06:47:15

标签: python bitmap mapreduce bit-manipulation bitwise-operators

我遇到需要长距离计算位图的情况。我不想过多关于问题陈述的细节,因为它并不重要。我宁愿简化问题以便更好地理解。我在python下面有一些伪代码:

n1=12000
while n > 0:
   if a == 1:
      bitmap_of_n1 = (bitmap_of_n1 << 1)+1 #add a 1 to bitmap
   else:
      bitmap_of_n1 = bitmap_of_n1 << 1 #add a zero to bitmap
   n1 -= 1

n2=12000
while n > 0:
   if a == 1:
      bitmap_of_n2 = (bitmap_of_n2 << 1)+1 #add a 1 to bitmap
   else:
      bitmap_of_n2 = bitmap_of_n2 << 1 #add a zero to bitmap
   n2 -= 1
 #....n100 or so

当然我不是按顺序做的。我利用MapReduce来做这个计算,但我的主要问题是如果我的位图“构建”(使用按位移位)是有效的,还是有更好的方法来做到这一点?我使用最左边的位作为开始,而较新的位是低位。如果我想使用最右边的位作为启动而更新的位是“更大”的位,我怎么能这样做并且它比我上面做的更有效呢?

我需要每个块(n1,n2 ...,n100)的位图长度相同且完全对齐(我的意思是n1的第一位应该与n2的第一位异或,依此类推)。我将在后续步骤中对块进行异或。

非常感谢任何帮助。提前谢谢!

0 个答案:

没有答案