Ненавижу Python

4 февраля 2021, 20:06
Rorschach
1
73

Найдите ошибку

import numpy as np

class RNDXor128:
    def __init__(self):
        self.x=np.uint32(123456789); self.y=np.uint32(362436069)
        self.z=np.uint32(521288629); self.w=np.uint32(88675123)
        self.xx=np.uint32(2463534242); self.t=np.uint32(0)
    
    def xor32(self):
        self.xx=self.xx^(self.xx<<np.uint32(13))
        self.xx=self.xx^(self.xx>>np.uint32(17))
        self.xx=self.xx^(self.xx<<np.uint32(5))
    
    def xor128(self):
        self.t=(self.x^(self.x<<np.uint32(11)))
        self.x=self.y; self.y=self.z; self.z=self.w
        self.w=(self.w^(self.w>>np.uint32(19)))^(self.t^(self.t>>np.uint32(8)))
    
    def SRand(self, seed):
        if seed!=0:
            self.xx=np.uint32(seed)
        for i in range(16):
            self.xor32()
        self.xor32()
        self.x=self.xx
        self.xor32()
        self.y=self.xx
        self.xor32()
        self.z=self.xx
        self.xor32()
        self.w=self.xx
        for i in range(16):
            self.xor128
    
    def Rand(self):
        self.xor128()
        return self.w
    
hor=RNDXor128()
hor.SRand(1)
print(hor.Rand())


Можете не мучится, все равно не найдете, IDE не поможет, программа "скомпилируется", но результат будет неправильный

Ответ:

for i in range(16):
    self.xor128()


Поделитесь с друзьями: