 
 
 
 
 
 
Re: [Q] Generalized Partitions
- To: mathgroup at smc.vnet.net
- Subject: [mg29971] Re: [mg29942] [Q] Generalized Partitions
- From: BobHanlon at aol.com
- Date: Fri, 20 Jul 2001 03:28:34 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 2001/7/19 4:15:11 AM, jkawczak at math.uncc.edu writes:
>do you know of a function in Mathematica that could do the partitioning
>of a number into a fixed number of components out of predefined set,
>i.e. partition number 10 into the elements from the set {1,3,4,5,6,7,9}
>and each partition should have exactly, say, 2 elements.  Of course, I
>have in mind a much bigger problem.
>
Needs["DiscreteMath`Combinatorica`"];
partSum1[s_Integer, n_Integer, l_List] := 
    Select[Partitions[s], Length[#]==n && l == Union[l, #]&];
partSum2[s_Integer, n_Integer, l_List] := 
    Select[KSubsets[l, n], (Plus@@#)==s&];
If you intended to allow for duplication of elements then
partSum1[10, 2, {1, 3, 4, 5, 6, 7, 9}]
{{9, 1}, {7, 3}, {6, 4}, {5, 5}}
partSum1[10, 3, {1, 3, 4, 5, 6, 7, 9}]
{{6, 3, 1}, {5, 4, 1}, {4, 3, 3}}
If duplication is not allowed
partSum2[10, 2, {1, 3, 4, 5, 6, 7, 9}]
{{1, 9}, {3, 7}, {4, 6}}
partSum2[10, 3, {1, 3, 4, 5, 6, 7, 9}]
{{1, 3, 6}, {1, 4, 5}}
Bob Hanlon
Chantilly, VA  USA

