[问题] random 的不随机

楼主: JokePtt (思辨成魔)   2016-11-08 19:04:44
如题
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
#!/usr/bin/env python3
import random
import time
__7n=[]
for __iter_100 in range(100):
__7n.append(random.randint(0,51))
print(__7n)
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
同时间取100个 0-51的样本 出来的数字很相近或相同的相邻在一起
感觉很不随机 random 咬时间产生?
改成下本件
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
#!/usr/bin/env python3
import random
import time
__7n=[]
for __iter_100 in range(100):
__77n=[]
for __iter_7n in range(7):
# delay x秒
# time.sleep(0.01*(random.randint(0,9)))
__77n.append(random.randint(0,9))
__tick7n=0
for __iter_7mix in range(7):
__tick7n+=__77n[__iter_7mix]*10**(6-__iter_7mix)
__7n.append(__tick7n%52)
print(__7n)
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
7位数(长整数?)去整除 也是出来不随机的法则
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
#!/usr/bin/env python3
import random
import time
__7n=[]
for __iter_100 in range(100):
__77n=[]
for __iter_7n in range(7):
# delay x秒
time.sleep(0.01*(random.randint(0,9)))
__77n.append(random.randint(0,9))
__tick7n=0
for __iter_7mix in range(7):
__tick7n+=__77n[__iter_7mix]*10**(6-__iter_7mix)
__7n.append(__tick7n%52)
print(__7n)
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
或者插入时间间隔想拆开random可能咬时间序的规律
也是很不随机
加大时间间隔 0.01→0.05 0.08…
除了时间变长外 看不出有变随机的可能 还是很不随机
random难道不了短时间量产随机样本吗?
一个样本没问题 一百两百个样本就有问题
请问各位大大 如何改比较好?
纯研究纸牌机率卡住
作者: kerwinhui (kezza)   2016-11-08 19:12:00
random != evenly-spaced
作者: Fungshui   2016-11-08 19:42:00
random目前的核心是Mersenne Twister,周期很长,至少对于这小问题还是措措有余的,你的感觉不太准确
作者: chchwy (mat)   2016-11-08 20:44:00
数字分布很均匀 != 随机
楼主: JokePtt (思辨成魔)   2016-11-08 20:55:00
可是100个样本 超过8.9个 甚至10多个都一样 这样算随机?第二三个文件如果不整除52 出来的7个位数也颇怪总觉得差不多时间序出来的样本都差不多 量产样本有问题
作者: CaptainH (Cannon)   2016-11-08 21:07:00
lol 毛真多
作者: linfox (想要一个猫头鹰木雕)   2016-11-08 22:38:00
要不要跑一下统计确认一下随机随不随机?(好饶舌)人对随机的知觉还蛮不准的 XD
作者: zeus85072 (deus)   2016-11-08 22:46:00
才100个哪里准啊跑个100万笔以上再来看够不够随机
作者: flarehunter (Range)   2016-11-09 09:47:00
你要发牌的话要用shuffle吧?保证不重复 牌用完再重新shuffle
作者: AmamiyaLee (AmamiyaLee)   2016-11-11 21:23:00
https://youtu.be/DTHavqxr3sM 随机给你参考

Links booklink

Contact Us: admin [ a t ] ucptt.com