
Re: Turning a Sequence into a List?
Posted:
Apr 16, 2013 4:21 AM


Just put list brackets around the sequence.
minCoin[sol_List]:= Module[{m=Min[(q+d+n+p)/.sol]}, Select[sol,((q+d+n+p)/.#)==m&][[1]]]
v=Range[52,53];
sol={Reduce[ 25q+10d+5n+p==#&&0<=p<5&& 0<=n<2&&0<=d<3&&0<=q<4, {q,d,n,p},Integers]//ToRules}&/@v;
minCoin/@sol//Column
{q>2,d>0,n>0,p>2} {q>2,d>0,n>0,p>3}
Or use Solve rather than Reduce
sol=Solve[ 25q+10d+5n+p==#&&0<=p<5&& 0<=n<2&&0<=d<3&&0<=q<4, {q,d,n,p},Integers]&/@v;
minCoin/@sol//Column
{q>2,d>0,n>0,p>2} {q>2,d>0,n>0,p>3}
Bob Hanlon
On Tue, Apr 16, 2013 at 12:35 AM, Rob <rob@piovere.com> wrote:
> Hello, I'm playing with a problem with minimum coins to make change. > Here's a problem spot where I look at ways to make up 52 and 53 cents > (later I'll use v = Range[1,99]. > > v=Range[52,53]; > sol=(Reduce[25q+10d+5n+p==# &&0<=p<5 &&0<=n<2 &&0<=d<3 > &&0<=q<4,{q,d,n,p},Integers])& /@v > > (* which gives {(q == 1 && d == 2 && n == 1 && p == 2)  (q == 2 && d > == 0 && > n == 0 && p == 2), (q == 1 && d == 2 && n == 1 && > p == 3)  (q == 2 && d == 0 && n == 0 && p == 3)} *) > > There are two cases for each coin and I need to pick the one with the > smallest number of coins. But the only way I know to begin that is with > a list of rules. I can get a Sequence for the first element of the List > sol but I can't figure how to get the Sequence to a list. > > x = (sol[[1]]) // ToRules > (* Sequence[{q > 1, d > 2, n > 1, p > 2}, {q > 2, d > 0, n > 0, > p > 2}] *) > > I've always had problems figuring out what a Sequence is and the HELP > doesn't really help me. Can someone please suggest how I can use this > sequence to select the {q,d,n,p} set that has the minimum coin count? > It's got me stumped. Thanks. > >  > > >

