雜記 › 資源分享 › 轉盤上寫「權重 30」是幾成機會?扇區角度、放回與不放回的兩種抽法

轉盤上寫「權重 30」是幾成機會?扇區角度、放回與不放回的兩種抽法

去年年會前,HR 遞來一張手寫獎項清單:一等獎 iPhone、二等獎 耳機、三等獎 保溫杯、鼓勵獎 紙巾一提,最下面單獨一格「謝謝參與」。她的要求只有一句,謝謝參與要佔一半,又別讓台下看穿那格是空的。我在 Excel 裡湊了三輪百分比,分母始終對不上;後來換了思路,不湊比例,只給每項寫權重。這篇記的就是這條鏈,以及兩種抽法下第幾個被抽到的人吃不吃虧。

一、權重合計 60:佔比、扇區角度、300000 次實測

清單我填進 幸運轉盤抽籤 的抽獎權重預設,五項權重是 1、3、6、20、30,合計 60;佔比是每項除以 60,扇區角度按同一個比值鋪開。我又用固定種子(mulberry32,20261021)跑了 300000 次加權抽取核對,同種子重跑數值不變。

獎項權重理論佔比扇區角度實測頻率相對偏差
一等獎 iPhone11.6667%6.0°1.70%1.70%
二等獎 耳機35.0000%18.0°4.95%-0.93%
三等獎 保溫杯610.0000%36.0°9.96%-0.39%
鼓勵獎 紙巾一提2033.3333%120.0°33.37%0.11%
謝謝參與3050.0000%180.0°50.02%0.04%

第一行那兩個 1.70% 要分開讀:實測頻率 1.70% 是 300000 次裡一等獎命中的比例,理論值 1.67%(精確 1.6667%);最後一欄是(實測 - 理論)除以理論,恰好也寫成 1.70%,講的是比理論高了約百分之一點七,不是機會本身。二等獎就拉開了,4.95% 對 5.00%、偏差 -0.93%,這類差是抽樣雜訊,樣本再大也只逼近理論。

二、放回:每輪獨立,撞名是遲早的事

不勾「抽中移除」時每輪都是原樣 40 項、單項機率 2.5000%,上一輪不影響下一輪,會出問題的是轉幾次就撞回同一個人。下表只算放回,不放回的數在第三節,兩套數不並排看。

轉動次數全部不重複至少一次重複
297.5000%2.5000%
392.6250%7.3750%
577.1103%22.8897%
847.3144%52.6856%
1029.3349%70.6651%
154.8989%95.1011%
200.3050%99.6950%

抽滿 20 次至少撞一次是 99.6950%,抽到 30 次全不重複只剩 1.950e-7,當作必然重複;反過來要把 40 項全露過一面,期望約 171.14 次(coupon collector),比直覺慢得多。

三、不放回:分母每輪少一項,順序不偏

班會抽 3 個人值日,有人當場問第二個被抽到的是不是吃虧。6 項等權攤開:單項機率從 16.67% 起,抽中即移除,第 2 輪 20.00%、第 3 輪 25.00%、第 4 輪 33.33%,最後只剩「乙、己」。分母每輪少 1,機率一路抬上來,可那是每輪的條件機率,不是某人最終被選中的機率。

該算的是後者:40 人不放回抽 3 人,某人在這 3 人中的機率 = 3/40 = 7.50%。第 k 位是某個指定的人,k=1、2、3 都是 1/40 = 2.5000%,第 2 位是 39/40 乘 1/39,仍是 2.5000%,後抽不吃虧。有序無序怎麼分見 排列與組合的區別。勾了移除也要 opts.length > 2 才真刪,只剩 2 項時只提示不停刪。

四、輸入格式:哪些寫法認、哪些會被改掉

一行一項,名稱與權重之間半形冒號、半形逗號、全形冒號、全形逗號都認,張三:3、李四,2、王五:1 進的是同一個轉盤,#註解行 與空行直接忽略。年會那份我這樣敲:

一等獎 iPhone:1
二等獎 耳機:3
三等獎 保溫杯:6
鼓勵獎 紙巾一提:20
謝謝參與:30
  • 權重只認正數:香蕉:0、橘子:-5、桃:abc 都按 1 處理,非正數不會讓某項中不了,只佔一格權重 1 的扇區。
  • 名稱含冒號時按最後一個分隔符切,蘋果::2 是名稱「蘋果:」加權重 2、F:1.5:2 是名稱 F:1.5 加權重 2;同一行混用分隔符也不拆兩項,火鍋:2, 麻辣燙:3 是一整項、權重 3。
  • 顯示最多兩位小數,0.333 顯示 0.33、2.675 顯示 2.68,計算仍用原值,6 項 A:1.5 / B:1.5 / C:0.333 / D:2.675 / E:1e3 / F:1.5:2 合計 9.01;這不等於只能填兩位。
  • 科學計數法不認,行解析只匹配 \d+(\.\d+)?,E:1e3 整行當名稱、權重 1,不會變成 1000;權重 1 的項回寫時省略冒號,X:1 存成 X。

五、指針不壓線,結果與畫面同源

落點是 jitter = span × (0.14 + rand × 0.72),指針只在扇區內部 14% 到 86% 處停,60 項等權每項 6° 時最小間距 0.84°。轉盤固定多轉 5、6 或 7 圈再加對齊角,時長 3.6 到 5 秒隨機;停止結果由最終角度反查指針所在扇區,繪製與判定共用一套角度。選人靠 Math.random() 乘權重合計逐項減掉的累減法,減到不大於 0 的那項勝出,機率等於權重佔比,但那是偽隨機不是物理隨機,承諾不了絕對公平。

名單定稿後走分享連結,選項與權重編碼進網址的 #opts= 片段,對方打開就是同一個轉盤。它只是 URL 片段,不進伺服器,也沒有多端同步,回讀不足 2 項會被拒。15 字元(含 3 個換行)編成 48 字元,中文 3 行 UTF-8 22 位元組編成 32 字元、URL 裡 36 字元。只給 40 人名單排序、不必逐項開獎,檔案隨機抽取 更省事。

Q:權重能填小數嗎?

能,只按相對比例生效,填 1 和 2 與填 1.5 和 3 是同一個轉盤;顯示只留兩位,參與換算的是原值。

Q:抽中移除和不移除,機率怎麼變?

不移除時 40 項每輪單項機率都是 2.5000%,抽 3 次至少一次重複 7.3750%;移除時分母每輪少 1、單項機率逐輪抬高,40 人抽 3 人某人入組 7.50%。

Q:能不能把名單發給同事?

能,名單進 URL 的 #opts= 片段,對方打開即還原同一個轉盤;伺服器那邊沒存東西,也不存在兩個人改同一份。

回到 HR 那一格,她拿走的是權重 1、3、6、20、30 這張表,謝謝參與 50.0000%、扇區 180.0°。年會不勾移除,獎池不該越轉越小,代價是抽滿 10 次有 70.6651% 的機率撞回同一個名字;班會勾移除,要的是 3 個不同的人,代價是單項機率漲到 33.33%。兩種抽法沒有誰更公平,只有誰配得上玩法。

📎 相關文章

SOS 只有 9 個音,整句字母表要 104 個音:摩斯碼的節奏怎麼算出來 2026-10-21 漸層底上的白字為什麼總看不清?把 WCAG 對比度逐個色標算一遍 2026-10-21 老照片放大就發糊?畫質提升能救回多少細節 2026-10-15 庫存標籤要條碼?CODE128 與 EAN-13 怎麼選 2026-10-15 拼豆圖紙怎麼做?把照片轉成色卡與網格 2026-10-15