File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -98,6 +98,11 @@ def predict_choice(self, seq):
9898 raise IndexError ('Cannot choose from an empty sequence' )
9999 return seq [i ]
100100
101+ def predict_random (self ):
102+ a = self ._to_int (self ._predict_32 ()) >> 5
103+ b = self ._to_int (self ._predict_32 ()) >> 6
104+ return ((a * 67108864.0 )+ b )/ 9007199254740992.0
105+
101106 def _to_bitarray (self , num ):
102107 k = [int (x ) for x in bin (num )[2 :]]
103108 return [0 ] * (32 - len (k )) + k
Original file line number Diff line number Diff line change @@ -50,3 +50,12 @@ def test_predict_first_1000_close():
5050 cracker .submit (random .randint (0 , 4294967294 ))
5151
5252 assert sum ([random .getrandbits (32 ) == cracker .predict_getrandbits (32 ) for _ in range (1000 )]) >= 980
53+
54+ def test_predict_random ():
55+ random .seed (time .time ())
56+
57+ cracker = RandCrack ()
58+
59+ for i in range (624 ):
60+ cracker .submit (random .randint (0 , 4294967294 ))
61+ assert sum ([random .random () == cracker .predict_random () for _ in range (1000 )]) >= 980
You can’t perform that action at this time.
0 commit comments