Typing Course

Feedback
Settings
AccuracySpeedTimeErrors

100%

0WPM

0CPM

0s

0/0

"""⏎
languages (including Python).⏎
For a more technical overview, see the wikipedia entry.⏎
Pseudocode: http://en.wikipedia.org/wiki/Mersenne_twister⏎
"""⏎
class MersenneTwister:⏎
def __init__(self):⏎
self.state = []⏎
self.index = 0⏎
def seed(self, seed):⏎
"""⏎
Initialize generator.⏎
:param seed: An integer value to seed the generator with⏎
"""⏎
self.state = []⏎
self.index = 0⏎
self.state.append(seed)⏎
for i in range(1, 624):⏎
n = (0x6c078965 * (self.state[i-1] ^ (self.state[i-1] >> 30)) + i)⏎
n &= 0xffffffff⏎
self.state.append(n)⏎
def randint(self):⏎
"""⏎
Extracts a random number.⏎
:rtype: A random integer⏎
"""⏎
if self.index == 0:⏎
self.generate()⏎
y = self.state[self.index]⏎
y ^= y >> 11⏎
y ^= (y << 7) & 0x9d2c5680⏎
y ^= (y << 15) & 0xefc60000⏎
y ^= y >> 18⏎
self.index = (self.index + 1) % 624⏎
return y⏎
def generate(self):⏎
"""⏎
Generates 624 random numbers and stores in the state list.⏎
"""⏎
for i in range(624):⏎
n = self.state[i] & 0x80000000⏎
n += self.state[(i+1) % 624] & 0x7fffffff⏎
self.state[i] = self.state[(i+397) % 624] ^ (n >> 1)⏎
if n % 2 != 0:⏎
self.state[i] ^= 0x9908b0df⏎
`~
1!
2@
3#
4$
5%
6^
7&
8*
9(
0)
-_
=+
backspace
tab
q
w
e
r
t
y
u
i
o
p
[{
]}
\|
capslock
a
s
d
f
g
h
j
k
l
;:
'"
enter
lshift
z
x
c
v
b
n
m
,<
.>
/?
rshift
fn
ctrl
lalt
lmeta
space
rmeta
ralt