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()