Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import sys
- def lfsr2():
- """ Generate non-linear (including 0000-state) sequence for F_{2^4} with
- connection polynomial x^4 + x + 1 """
- r = [1]*4
- r[0] = 0
- r[1] = 0
- r[2] = 0
- r[3] = 0
- j = 0
- while j < (2**4):
- yield r[0]
- i1 = (r[0] + r[3]) % 2
- i2 = 1 if not (r[1] or r[2] or r[3]) else 0
- i = 0
- while i < len(r)-1:
- r[i] = r[i+1]
- i += 1
- r[4-1] = (i1+i2) % 2
- j += 1
- #yield 0
- #yield 0
- #yield 0
- def lfsr5():
- """ Generate non-linear (including 0000-state) sequence for F_{5^4} with
- connection polynomial x^4 + x^2 + 2x + 2 """
- r = [1]*4
- r[0] = 0
- r[1] = 0
- r[2] = 0
- r[3] = 1
- j = 0
- while j < (5**4):
- yield r[0]
- i1 = (2*r[0]+r[1]+r[3]) % 5
- i2 = 0
- if not (r[1] or r[2] or r[3]):
- if r[0]==2:
- i2 = 1
- elif r[0]==0:
- i2 = 4
- i = 0
- while i < len(r)-1:
- r[i] = r[i+1]
- i += 1
- r[4-1] = ((i1+i2)) % 5
- j += 1
- #yield 1
- #yield 1
- #yield 1
- if __name__ == '__main__':
- seq1 = list(lfsr2())
- seq2 = list(lfsr5())
- #print seq1
- seq1 = seq1*len(seq2)
- seq2 = seq2*len(seq1)
- for i in range(0, len(seq1)):
- a = seq1[i]
- b = seq2[i]
- sys.stdout.write(str(a*5+b))
- sys.stdout.write("000")
Add Comment
Please, Sign In to add comment