[問題] random 的不隨機

看板Python作者 (思辨成魔)時間7年前 (2016/11/08 19:04), 編輯推噓3(3012)
留言15則, 9人參與, 最新討論串1/2 (看更多)
如題 ※※※※ ※※※※ ※※※※ ※※※※ ※※※※ ※※※※ #!/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://www.ptt.cc/bbs/Python/M.1478603088.A.6D8.html

11/08 19:12, , 1F
random != evenly-spaced
11/08 19:12, 1F

11/08 19:42, , 2F
random目前的核心是Mersenne Twister,周期很長,至少對
11/08 19:42, 2F

11/08 19:44, , 3F
於這小問題還是措措有餘的,你的感覺不太準確
11/08 19:44, 3F

11/08 20:44, , 4F
數字分佈很均勻 != 隨機
11/08 20:44, 4F

11/08 20:55, , 5F
可是100個樣本 超過8.9個 甚至10多個都一樣 這樣算隨機?
11/08 20:55, 5F

11/08 20:57, , 6F
第二三個文件如果不整除52 出來的7個位數也頗怪
11/08 20:57, 6F

11/08 20:59, , 7F
總覺得差不多時間序出來的樣本都差不多 量產樣本有問題
11/08 20:59, 7F

11/08 21:07, , 8F
lol 毛真多
11/08 21:07, 8F

11/08 22:38, , 9F
要不要跑一下統計確認一下隨機隨不隨機?(好饒舌)
11/08 22:38, 9F

11/08 22:39, , 10F
人對隨機的知覺還蠻不準的 XD
11/08 22:39, 10F

11/08 22:46, , 11F
才100個哪裡準啊
11/08 22:46, 11F

11/08 22:46, , 12F
跑個100萬筆以上再來看夠不夠隨機
11/08 22:46, 12F

11/09 09:47, , 13F
你要發牌的話要用shuffle吧?保證不重複 牌用完再
11/09 09:47, 13F

11/09 09:47, , 14F
重新shuffle
11/09 09:47, 14F

11/11 21:23, , 15F
隨機給你參考
11/11 21:23, 15F
文章代碼(AID): #1O8R5GRO (Python)
文章代碼(AID): #1O8R5GRO (Python)