作者yauhh (哟)
看板Programming
标题Re: [问题] 排列组合,相同物品分发制不同容器
时间Sat Apr 14 10:23:42 2012
※ 引述《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 的情况再做
另一些组合. 其他也一样.
这样应该不会当东西数目超过堆数的二倍时无法分堆了.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.67.34