作者lovesnake (【忠犬攻一枚】)
站內Programming
標題[問題] 排列組合,相同物品分發制不同容器
時間Sat Apr 14 00:43:24 2012
求標題之演算法
其實就是分堆啦
假設有五個東西,分成三堆有幾種分法這樣
1 1 3
1 2 2
2 1 2
2 2 1
1 3 1
3 1 1
沒有按照順序,不過需要列印出來的大概像這樣。
因為是分到不同容器所以會有差別,所以內部是個SET而不是序列。相同的不能刪。
謝謝!!
已經想過很多方法,不過最終只做到東西的數量<堆數*2的時候才能成功。
大於的演算法始終想不出來。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.216.68
1F:推 LPH66:直接用遞迴如何? 140.112.28.91 04/14 01:14
2F:→ lovesnake:一語驚醒夢中人! 我還一直想用迭代 140.121.216.68 04/14 10:23
3F:→ lovesnake:不過果然還是想迭代XD 不知有人有解嗎? 140.121.216.68 04/14 10:24
4F:→ yauhh:迭代跟遞迴差別,只是程式結構差別而已. 61.231.67.34 04/14 10:30
5F:→ lovesnake:重點是想法...迭代的想法想不出來 140.121.216.68 04/14 10:33
6F:→ lovesnake:好像三層for迴圈出得來? 140.121.216.68 04/14 10:34
突然想到....用遞迴似乎只能針對單一情況?
分三堆~分四堆的遞迴式好像不同?
這樣似乎不行Orz
我想求的演算法是適用於各種情形的~ N個物品分K堆 N > 0 、 K > 0
可能是我想不到,還請高手指點。
※ 編輯: lovesnake 來自: 140.121.216.68 (04/14 10:36)