root / Pi / RNG / MWC.py @ 189
Historique | Voir | Annoter | Télécharger (403 octet)
1 | 7 | equemene | #!/usr/bin/env python
|
---|---|---|---|
2 | 7 | equemene | |
3 | 7 | equemene | import numpy |
4 | 7 | equemene | |
5 | 7 | equemene | SIZE=256
|
6 | 7 | equemene | |
7 | 7 | equemene | if __name__=='__main__': |
8 | 7 | equemene | |
9 | 7 | equemene | z=numpy.uint32(37)
|
10 | 7 | equemene | w=numpy.uint32(91)
|
11 | 7 | equemene | |
12 | 7 | equemene | for i in range(1000): |
13 | 7 | equemene | |
14 | 7 | equemene | z=numpy.uint32(36969*(z&65535)+(z>>16)) |
15 | 7 | equemene | w=numpy.uint32(18000*(w&65535)+(w>>16)) |
16 | 7 | equemene | MWC= lambda : numpy.uint32((z<<16)+w) |
17 | 7 | equemene | MWCfp= lambda: (MWC() + 1.0) * 2.328306435454494e-10 |
18 | 7 | equemene | |
19 | 7 | equemene | print i,MWC(),numpy.uint32(MWCfp()*SIZE)
|
20 | 7 | equemene | |
21 | 7 | equemene |