def sdivide(a,b): # returns b%a in GF(2) slow/ascii version aa=listify (a); bb=listify (b); while True: try: one=bb.index(1); except: return 0; # print "lb-o: ",len(bb)-one,"la",len(aa) if(len(bb)-one<len(aa)): break # print "b: ",stringify(bb),one # print "a: ",(" "*(one-1)),stringify(aa) for i in xrange(len(a)): if aa[i]==1: bb[one+i]=1-bb[one+i] # print "i: %2d"%i,stringify(bb),"a=",aa[i] # print "b: ",stringify(bb),one # print "Result: ",stringify(bb) return int(stringify(bb),2)
def sdivide(a, b): # returns b%a in GF(2) slow/ascii version aa = listify(a) bb = listify(b) while True: try: one = bb.index(1) except: return 0 # print "lb-o: ",len(bb)-one,"la",len(aa) if (len(bb) - one < len(aa)): break # print "b: ",stringify(bb),one # print "a: ",(" "*(one-1)),stringify(aa) for i in range(len(a)): if aa[i] == 1: bb[one + i] = 1 - bb[one + i] # print "i: %2d"%i,stringify(bb),"a=",aa[i] # print "b: ",stringify(bb),one # print "Result: ",stringify(bb) return int(stringify(bb), 2)
def add(a,b): # unneccessary, as actually add(a,b) == a^b aa=listify(a) bb=listify(b) result=[] if (len(bb)>len(aa)): (aa,bb)=(bb,aa) for i in xrange(len(aa)): result[i]=(aa[i]+bb[i])%2 return stringify(result)
def add(a, b): # unneccessary, as actually add(a,b) == a^b aa = listify(a) bb = listify(b) result = [] if (len(bb) > len(aa)): (aa, bb) = (bb, aa) for i in range(len(aa)): result[i] = (aa[i] + bb[i]) % 2 return stringify(result)