作者JokePtt (思辨成魔)
看板Python
标题[问题] random 的不随机
时间Tue Nov 8 19:04:44 2016
如题
※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※
#!/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难道不了短时间量产随机样本吗?
一个样本没问题 一百两百个样本就有问题
请问各位大大 如何改比较好?
纯研究纸牌机率卡住
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.139.108.184
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1478603088.A.6D8.html
1F:→ kerwinhui: random != evenly-spaced 11/08 19:12
2F:→ Fungshui: random目前的核心是Mersenne Twister,周期很长,至少对 11/08 19:42
3F:→ Fungshui: 於这小问题还是措措有余的,你的感觉不太准确 11/08 19:44
4F:推 chchwy: 数字分布很均匀 != 随机 11/08 20:44
5F:→ JokePtt: 可是100个样本 超过8.9个 甚至10多个都一样 这样算随机? 11/08 20:55
6F:→ JokePtt: 第二三个文件如果不整除52 出来的7个位数也颇怪 11/08 20:57
7F:→ JokePtt: 总觉得差不多时间序出来的样本都差不多 量产样本有问题 11/08 20:59
8F:推 CaptainH: lol 毛真多 11/08 21:07
9F:→ linfox: 要不要跑一下统计确认一下随机随不随机?(好饶舌) 11/08 22:38
10F:→ linfox: 人对随机的知觉还蛮不准的 XD 11/08 22:39
11F:→ zeus85072: 才100个哪里准啊 11/08 22:46
12F:→ zeus85072: 跑个100万笔以上再来看够不够随机 11/08 22:46
13F:推 flarehunter: 你要发牌的话要用shuffle吧?保证不重复 牌用完再 11/09 09:47
14F:→ flarehunter: 重新shuffle 11/09 09:47