挑战:
在两个大小相等的缓冲区上执行按位XOR.缓冲区将需要是python str
类型,因为传统上它是python中数据缓冲区的类型.将结果值作为a返回str
.尽快做到这一点.
输入是两个1兆字节(2**20字节)的字符串.
挑战是使用python或现有的第三方python模块(轻松的规则:或创建自己的模块)大幅击败我的低效算法.边际增加是无用的.
from os import urandom
from numpy import frombuffer,bitwise_xor,byte
def slow_xor(aa,bb):
a=frombuffer(aa,dtype=byte)
b=frombuffer(bb,dtype=byte)
c=bitwise_xor(a,b)
r=c.tostring()
return r
aa=urandom(2**20)
bb=urandom(2**20)
def test_it():
for x in xrange(1000):
slow_xor(aa,bb)
Run Code Online (Sandbox Code Playgroud)