Pure_PRNG——高质量伪随机数生成器Py库
作者:互联网
![RANDU随机数可视化 RANDU随机数可视化](https://pic2.zhimg.com/v2-2d615f51869d2a28aaeeaaf8ea63e025_b.png)
PRNG算法 | 周期 |
---|---|
Quadratic Congruential Generator(QCG)+混淆 | 2^256 |
Cubic Congruential Generator(CCG)+混淆 | 2^256 |
Inversive Congruential Generator(ICG) | 102*2^256 |
PCG64_XSL_RR | 2^128 |
PCG64_DXSM | 2^128 |
LCG64_32_ext | 2^128 |
LCG128Mix_XSL_RR | 2^128 |
LCG128Mix_DXSM | 2^128 |
LCG128Mix_MURMUR3 | 2^128 |
PhiloxCounter | 4*2^(4*64) |
ThreeFryCounter | 4*2^(4*64) |
AESCounter | 2^128 |
ChaChaCounter | 2^128 |
SPECKCounter | 2^129 |
XSM64 | 2^128 |
EFIIX64 | 2^64 |
SplitMix64 | 2^64 |
Ran64 | 2^64 |
pip install pure-prng导入
from pure_prng_package import pure_prng很简单可以用起来,默认用的PRNG算法是QCG
>>> seed = 170141183460469231731687303715884105727 #随意写的种子值 >>> prng_instance = pure_prng(seed) >>> source_random_number = prng_instance.source_random_number() >>> next(source_random_number) 65852230656997158461166665751696465914198450243194923777324019418213544382100QCG、CCG和LCG64_32_ext这三种是可变周期算法
>>> prng_instance = pure_prng(seed, new_prng_period = 2 ** 512) >>> source_random_number = prng_instance.source_random_number() >>> next(source_random_number) 8375486648769878807557228126183349922765245383564825377649864304632902242469125910865615742661048315918259479944116325466004411700005484642554244082978452其他PRNG算法是固定周期算法 但是,库中有method可设置输出随机数序列的周期(不论哪种PRNG算法生成的随机数)
>>> period = 115792089237316195423570985008687907853269984665640564039457584007913129639747 #随意写的周期 >>> prng_instance = pure_prng(seed) >>> rand_with_period = prng_instance.rand_with_period(period) >>> next(rand_with_period) mpz(65852230656997158461166665751696465914198450243194923777324019418213544381986)库中还有method生成任意精度浮点随机数
>>> seed = 170141183460469231731687303715884105727 >>> prng_instance = pure_prng(seed) >>> rand_float = prng_instance.rand_float(100) >>> next(rand_float) mpfr('0.56576176351048513846261940831522',100)
标签:Pure,Py,生成器,instance,算法,随机数,128,prng 来源: https://www.cnblogs.com/sosei/p/15009355.html