Hallo im Versuch, einen einheitlichen Zufallszahlengenerator zu erhalten, der einen Kryptoalgorithmus als die Maschine verwendet. DES ist möglich, verwendet zu werden, aber in diesem Fall habe ich TEA gemäß diesem http://myweb.tiscali.co.uk/jgrimbleby/random.htm verwendet, der den Code von C++ zu python portiert. Das Problem ist, dass ich brauche, dass der Bereich zwischen 0 und 1 liegt. Gegenwärtig sind die Werte sehr groß 10^76 range.Any Idee, wenn es ein Übertragungsfehler meinerseits ist oder wenn es irgendeine Hinzufügung gibt, kann ich mich setzen, um den gewünschten Bereich zu erhalten.Pseudozufallszahlengenerator unter Verwendung von TEA
class psrTEA:
def __init__(self):
self.m = 4294967296.0
self.d = 0X09E3779B9L
self.k0 = 0X0C7D7A8B4L
self.k1 = 0X09ABFB3B6L
self.k2 = 0X073DC1683L
self.k3 = 0X017B7BE73L
self.y = 123456789L
self.z = 987654321L
def rnd(self):
s = 0
self.y = long(time.time())
self.z = long(time.clock())
for n in range(31):
s += self.d
self.y += (self.z << 4) + self.k0^self.z + s^(self.z >> 5) + self.k1
self.z += (self.y << 4) + self.k2^self.y + s^(self.y >> 5) + self.k3
return ((self.z + self.y/self.m)/ self.m)
danke, änderte meinen m-Wert oben, um zu reflektieren, dass das vorherige val ein bisschen zu klein war – arm1