mirror of
https://github.com/jjaldridge2009/Project_Xs.git
synced 2024-10-05 14:57:12 +02:00
Update xorshift.py
bug fix and added some methods (value, rangefloat)
This commit is contained in:
parent
e86faca452
commit
bcf6f7b702
@ -37,13 +37,46 @@ class Xorshift(object):
|
|||||||
|
|
||||||
return self.w
|
return self.w
|
||||||
|
|
||||||
def range(mi,ma):
|
def advances(self,length:int):
|
||||||
|
self.getNextRandSequence(self)
|
||||||
|
|
||||||
|
def range(self,mi:int,ma:int)->int:
|
||||||
|
"""generate random integer value in [mi,ma)
|
||||||
|
|
||||||
|
Args:
|
||||||
|
mi ([int]): minimum
|
||||||
|
ma ([int]): maximam
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
[int]: random integer value
|
||||||
|
"""
|
||||||
return self.next() % (ma-mi) + min
|
return self.next() % (ma-mi) + min
|
||||||
|
|
||||||
def getNextRandSequence(length):
|
def value(self)->float:
|
||||||
|
"""generate random value in [0,1]
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
float: random value
|
||||||
|
"""
|
||||||
|
return (self.next() & 0x7fffff) / 8388607.0
|
||||||
|
|
||||||
|
def rangefloat(self,mi:float,ma:float)->float:
|
||||||
|
"""generate random value in [mi,ma]
|
||||||
|
|
||||||
|
Args:
|
||||||
|
mi (float): minimum
|
||||||
|
ma (float): maximam
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
[type]: [description]
|
||||||
|
"""
|
||||||
|
t = self.value()
|
||||||
|
return t * mi + (1-t) * ma
|
||||||
|
|
||||||
|
def getNextRandSequence(self,length):
|
||||||
return [self.next() for _ in range(length)]
|
return [self.next() for _ in range(length)]
|
||||||
|
|
||||||
def getPrevRandSequence(length):
|
def getPrevRandSequence(self,length):
|
||||||
return [self.prev() for _ in range(length)]
|
return [self.prev() for _ in range(length)]
|
||||||
|
|
||||||
def getState(self):
|
def getState(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user