Programming 板


LINE

※ 引述《dinohsu1019 (傑生方的鐵粉)》之銘言: : 投資組合為1將權重k等分分配到n個股票,每個股票可分配權重0(零),1/k,2/k,...1 : (全部)將k等分分配到n個股票。 : 即「從n中取k可重複的組合」,組合數為 C(n+k-1,n-1)。 : 故權重編號範圍為1~C(n+k-1,n-1) : 權重串列(整數版)為(n,0,...0,0),(n-1,1,...,0,0),...(0,0,...,0,n)。 : 權重串列(小數版) = 權重串列(整數版)/n。 : 我的目的不是要將全部組合展開,而是要隨機映射編號和組合, : 例如:n=8, k=4時有165種組合, : 正向:當我輸入編號21時要輸出 (0.375, 0.375, 0.25, 0.0) : 反向:當我輸入(0.375,0.375,0.25,0.0)要得到編號21 : 有什麼方法可以計算?感謝先 : https://tinyurl.com/yvkpanm6 於是你的需求是將重覆組合以某個順序排序後直接求出該組合是排序中第幾位 (及反之) 這種組合和序數轉換題型有一個通用的想法是: 將這個排序順序做成有某種分組的樣子 (例如第一權重相同的全部排在一起) 然後依照這個分組順序數過去 每數一組直接算出分組有多少元素, 然後判斷你要的第 N 組是不是在這裡面 發現是了的話這個分組的特性就會變成確定的組合項目 然後就能遞迴往下求該組內的對應組合 使用在這個題目的話, 以你所產生的順序來看 (先不要除以總權數) 1 號組合是最後一個權重在第一檔 2~9 號組合是最後一個權重在第二檔 10~45 號組合是最後一個權重在第三檔 46~165 號組合是最後一個權重在第四檔 這是一個大分組, 每一個分組的數量可以先放一個權重在對應的檔再分餘下權重 所以第一大組是權重 7 分在 1 檔, 計 C(1+7-1, 1-1) = C(7,0) = 1 種 第二大組是權重 7 分在 2 檔, 計 C(2+7-1, 2-1) = C(8,1) = 8 種 第三大組是權重 7 分在 3 檔, 計 C(3+7-1, 3-1) = C(9,2) = 36 種 第四大組是權重 7 分在 4 檔, 計 C(4+7-1, 4-1) = C(10,3) = 120 種 可以驗證上面算出來的正是再上面四個大組的數量 所要的 21 號組合, 因 1+8 < 21 但 1+8+36 >= 21 故知屬於第三大組的 21-1-8=12 號組合 而每個大分組中又可依據這最後一檔有多少權重分中組 這 36 種組合中 第三檔有權重 1 的餘下權重 7 分在 2 檔, 計 C(2+7-1, 2-1) = C(8,1) = 8 種 權重 2 的餘下權重 6 分在 2 檔, 計 C(2+6-1, 2-1) = C(7,1) = 7 種 權重 3 的餘下權重 5 分在 2 檔, 計 C(2+5-1, 2-1) = C(6,1) = 6 種 等等 所要的 12 號組合, 因 8 < 12 但 8+7 >= 12 故知屬於第二中組, 即第三檔有權重 2 其為此組 (權重 6 分在 2 檔) 中的 12-8=4 號組合 -- 至此確定了第三檔權重 2, 以後皆無權重, 而前面是權重 6 分 2 檔的 4 號組合 這後半部份即是和原來完全相同的問題, 因此即可遞迴求解 這個例子中的 4 號組合是 (3,3), 所以加上第三檔權重 2, 以後皆無, 即得 (3,3,2,0) 倒算也能類似的求出來: (3,3,2,0) 最後一個在第三檔權重 2 所以在第三大組第二中組, 它前面兩個大組有 1 和 8 組, 一個中組有 8 組, 總計 17 然後遞迴求出 (3,3) 的順序 4 號組合, 所以所求是 17+4 = 21 號組合 ==== 話說回來, 你想要的其實是隨機求一個組合 那其實各組合的順序並不一定要是這個順序 也可以直接用比較好分組的方式來做 例如可以直接用類似上面分中組的方式排序 這樣順序就會變成反向字典順序: (8,0,0,0) (7,1,0,0) (7,0,1,0) (7,0,0,1) (6,2,0,0) (6,1,1,0) (6,1,0,1) (6,0,2,0) (6,0,1,1) (6,0,0,2) (5,3,0,0) (5,2,1,0) (5,2,0,1) (5,1,2,0) (5,1,1,1) (5,1,0,2) (5,0,3,0) (5,0,2,1) (5,0,1,2) (5,0,0,3) (4,4,0,0) .... 每一組中的組合數也能類似求得: 第一檔權重 8 則餘下權重 0 分 3 檔, 計 C(3+0-1, 3-1) = C(2,2) = 1 種 權重 7 則餘下權重 1 分 3 檔, 計 C(3+1-1, 3-1) = C(3,2) = 3 種 權重 6 則餘下權重 2 分 3 檔, 計 C(3+2-1, 3-1) = C(4,2) = 6 種 權重 5 則餘下權重 3 分 3 檔, 計 C(3+3-1, 3-1) = C(5,2) = 10 種 等等 隨便舉個 17 號組合: 1+3+6 < 17 但 1+3+6+10 >= 17 故知屬於第一檔權重 5 的組 其為組內 17-1-3-6 = 7 號組合, 因此餘下三檔即是權重 3 分 3 檔的 7 號組合 遞迴求出來是 (0,3,0), 所以所求組合即是 (5,0,3,0) 倒求順序的手法類似就不在這裡詳述了 ==== 總之概念就是, 把你要的順序拆成各個可以分別直接求出組合數的小塊 這樣你只要算過去就會知道你要的組合是在哪個小塊裡 然後小塊中的哪裡這問題是原問題的縮小版, 所以可以遞迴求解 求順序則是倒過來, 確定組合屬於哪個小塊之後求出前面所有小塊的組合數加總 再加上扣掉組合性質後餘下的組合遞迴求出是這個小塊中的第幾個, 總合就是答案 -- Ace Snake Santa Clover Junpei June Seven Lotus 9th man cabin kitchen casino shower operating room laboratory T H E chart captain quarter confinement torture room steam engine room cargo chapel library study incinerator Gigantic Q director office security N O N A R Y archives control laboratory pec treatment garden pantry gaulem bay rec room crew quarters infirmary lounge elevator Tenmyouji Quark Dio G A M E S Luna Phi Sigma Alice Clover K --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.56.178 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Programming/M.1714534223.A.73D.html ※ 編輯: LPH66 (123.194.181.180 臺灣), 05/01/2024 16:09:24







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP