Re: [問題] 從0-99999選出一千個不重覆的亂數?
不知道這樣夠不夠亂...
取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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 9 篇):