Re: [問題] 排列組合,相同物品分發制不同容器
※ 引述《yauhh (喲)》之銘言:
: ※ 引述《lovesnake (【忠犬攻一枚】)》之銘言:
: : 求標題之演算法
: : 其實就是分堆啦
: : 假設有五個東西,分成三堆有幾種分法這樣
: : 1 1 3
: : 1 2 2
: : 2 1 2
: : 2 2 1
: : 1 3 1
: : 3 1 1
: : 沒有按照順序,不過需要列印出來的大概像這樣。
: : 因為是分到不同容器所以會有差別,所以內部是個SET而不是序列。相同的不能刪。
: : 謝謝!!
: : 已經想過很多方法,不過最終只做到東西的數量<堆數*2的時候才能成功。
: : 大於的演算法始終想不出來。
: 看最後一句,猜你的方法有一點特殊性或限制,所以數量少於堆數的二倍才會成功.
: 假設有八個東西要分三堆,你會先整理出
: 1 1 6
: 1 2 5
: 1 3 4
: ......
: 這意思是說, 1 1 6 的情況,你要先隨便取一個,然後隨便取一個,然後剩下六個放到
: 第三堆,這樣是一些組合. 1 2 5 的情況要做另一些組合. 然後 1 3 4 的情況再做
: 另一些組合. 其他也一樣.
: 這樣應該不會當東西數目超過堆數的二倍時無法分堆了.
這個問題從容器來想比較簡單,M個容器,放入總數恰等於N的值
從大到小,追蹤剩餘未分配數量。
如果每個容器要求至少一個,就先N-M個,再做分配。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.15.80
推
04/15 14:13, , 1F
04/15 14:13, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 8 之 11 篇):