Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

?
Lv 5
? 發問時間: 科學數學 · 2 年前

機率法產生的亂數,每個亂數產生的機率相等嗎?

已更新項目:

[心得] 亂數不重複的方法

https://www.ptt.cc/bbs/C_and_CPP/M.1265989028.A.7C...

for(int i = 0,got = 0 ; i < deckSize ; ++i) {

if( rand() % (deckSize-i) < (getSize-got) ) {

cards[got] = i + 1; ++got;

}

基本上就是判斷亂數有沒有在區間內,有在區間內就選這張牌並縮小區間,沒在區間內就縮小亂數範圍。

例如52張牌(亂數範圍)選5張(區間)

第1張牌要不要選

區間內:選這張且區間-1(變成4)

區間外:亂數範圍-1(變成51)

但這樣每張牌選中的機率相等嗎?

2 個已更新項目:

更正

第1張牌要不要選

區間內:選這張,亂數範圍-1(變成51)且區間-1(變成4)

區間外:亂數範圍-1(變成51)

1 個解答

評分
  • ?
    Lv 7
    2 年前
    最佳解答

    假設 N 張牌要抽取 n 張.

    此法是 N 張牌逐一決定是否納入樣本.

    (下面請按左下角意見圖示續看)

      

還有問題?馬上發問,尋求解答。