基于种子的随机数生成
seedrandom的Python项目详细描述
随机播种
基于种子的随机数生成
安装/更新
pip install seedrandom
pip install --upgrade seedrandom
或
pip install git+https://github.com/BananaLoaf/seedrandom.git
pip install --upgrade git+https://github.com/BananaLoaf/seedrandom.git
是随机的吗?
uppon在1到5的范围内生成100000个随机数,它显示出均匀分布
1 | 20.0% |
2 | 20.2% |
3 | 19.9% |
4 | 20.0% |
5 | 19.9% |
使用量
fromseedrandomimportSeedseed=Seed(b"Test",b"values")
生成随机值:
seed.randint(_min=1,_max=10)seed.randfloat(_min=0,_max=6,step=0.1)seed.randbool()seed.randbyte()
Seed
可以转换成int
或bytes
:
seed1=Seed(b"Bytes")seed2=Seed(b"Int")bytes(seed1)# b"\x9e^\n\x06j\x99\xe1`\x86m-\xe7Z\n\xbdSN\x92O}\x89@\xd0\r'\x86\xf1\xaf\xcd\xd4\xa2'"int(seed2)# 31431599345838686137398213930967341686259486292204322755690725188121734625692seed1=Seed.from_bytes(b"\x9e^\n\x06j\x99\xe1`\x86m-\xe7Z\n\xbdSN\x92O}\x89@\xd0\r'\x86\xf1\xaf\xcd\xd4\xa2'")# <seedrandom.Seed object at 0x0000002CA1D7F8D0>seed2=Seed.from_int(31431599345838686137398213930967341686259486292204322755690725188121734625692)# <seedrandom.Seed object at 0x0000002CA1D7F9B0>
Seed
可以使用来自hashlib
模块的不同哈希函数
seed1=Seed(b"Test",b"values")# Uses hashlib.sha256 by defaultseed2=Seed(b"Test",b"values",hash_func=hashlib.md5)seed1.randint(_min=0,_max=100000)# 2457seed2.randint(_min=0,_max=100000)# 98655
ordered
可以使用参数:
seed1=Seed(b"Hello",b"world")seed2=Seed(b"world",b"Hello")seed1==seed2# Trueseed1=Seed(ordered=(b"Hello",b"world"))seed2=Seed(ordered=(b"world",b"Hello"))seed1==seed2# Falseseed1=Seed(b"Hello",b"world",ordered=(b"spanish",b"inquisition"))seed2=Seed(b"world",b"Hello",ordered=(b"spanish",b"inquisition"))seed1==seed2# Trueseed1=Seed(b"Hello",b"world",ordered=(b"spanish",b"inquisition"))seed2=Seed(b"Hello",b"world",ordered=(b"inquisition",b"spanish"))seed1==seed2# False