import math
import time

class myLFSR:
    """a custom 33 N LSFR"""
    def __init__(self,seed):
        self.sr = [1]+[0]*32
        self.tabs = (1,2,22,32)
        #print self.sr
        
        
    def random_bit(self):
        newbit = sum(self.sr[tab-1] for tab in  self.tabs)%2
        self.sr = [newbit] + self.sr[:-1]
        #print self.sr
        return newbit
        
    def random_float(self):
        """return a 32bit float between 0 and 1"""
        bitStr = ''
    	for i in range(32): 
    		bitStr = bitStr + str(self.random_bit())
    	return float(int(bitStr, 2)) / 4294967295.0
 
       
def main():
    myrand = myLFSR(time.time())
    myrand.random_bit()
    myrand.random_float()
    myrand.random_float()
    myrand.random_float()
 

if __name__== "__main__":        
    main()
    
        
    
    
     