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):
98
98
raise IndexError ('Cannot choose from an empty sequence' )
99
99
return seq [i ]
100
100
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
+
101
106
def _to_bitarray (self , num ):
102
107
k = [int (x ) for x in bin (num )[2 :]]
103
108
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():
50
50
cracker .submit (random .randint (0 , 4294967294 ))
51
51
52
52
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