Re: [問題] 從0-99999選出一千個不重覆的亂數?

看板Programming作者 (兔子)時間15年前 (2010/06/30 21:05), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串9/9 (看更多)
不知道這樣夠不夠亂... 取1000個範圍隨便的隨機數r1 r2 r3 ... r1000 並將它們當做間隔 取1個隨機數當做我們要的起點a1 第1個我們要的數字加上第一個間隔 就是我們要的第2個數字a2=a1+r1*1000/(r1+r2+r3+...+r1000) 第三個數字a3=a2+r2*1000/(r1+r2+r3+...+r1000) 第n個數字an=a(n-1)+r(n-1)*1000/(r1+r2+r3+...+r1000) =========== 間隔範圍太大或太小的話 數字分配會變的比較平均 感覺不怎麼隨機? ※ 引述《yauhh (喲)》之銘言: : 這個問題,有人提到每次隨機取一項的機率必須同等,所以在演算法上面拼命想. : 但回想許多真實系統,有存在這種機率不均的問題嗎? : 樂透彩球用機器取球,第一次吸出一顆, p(1/49), 第二顆 p(1/48|1/49), : 第三顆 p(1/47|1/48,1/49), : 單看每一顆球的選取範圍,的確是不一樣. : 但是加入考量每一顆球被取出的次序,似乎就沒有這種問題了不是? : 而且在這件事情中,我們都只看前一組跟下一組的機率是均等的. : 而前一組與下一組機率均等,是符合於從袋中取出彩色球並可放回的問題形式. : 如果真的很在乎每個球隨機選取時的選取範圍,在真實系統的做法不外乎 : 先找個黑袋把球裝好,隨意搖勻,然後用隔袋抓球的方式把需要取的球數抓好, : 一次倒出所抓的球! 這樣的機率很對吧? : 至少也要用平行處理的方式隨機選球,以最小的例子來說, : 從袋中取出二顆球,並每次抽取的機率相同,則取球的方法就是兩隻手一起伸進去 : 同時各自摸出一顆球出來. : 我還是不理解為什麼從十萬數字中抽一千數字,每個數字一定要平均機率. : 抽籤也是有順序,只要有順序,除了先抽與後抽的選取範圍不同, : 每個後選者對於隨著順序對於命中機會影響的感覺就會有不同. : 連真實系統都沒有所謂真亂數,卻都想在電腦系統上實現"真亂數",這有必要嗎? -- ◤ __ \__◢◤◢◤ ψhirabbitt ◤ ◢███◣ ◢███◣ 和妳的約定 █████ █████ 不變心的約定 ██ ███ 是變心的約定 ██╱╲ ◥█████◣● 是我和自己的約定╱╱ ◥████ ˇ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.127.91

07/01 20:31, , 1F
除這個動作,其實就等於一個分類的動作
07/01 20:31, 1F
文章代碼(AID): #1CAx656f (Programming)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 9 篇):
文章代碼(AID): #1CAx656f (Programming)