[Date Index]
[Thread Index]
[Author Index]
Re: Calculating a given total using only given specific values tia sal22
*To*: mathgroup at smc.vnet.net
*Subject*: [mg104320] Re: Calculating a given total using only given specific values tia sal22
*From*: "Nasser M. Abbasi" <nma at 12000.org>
*Date*: Tue, 27 Oct 2009 05:00:35 -0500 (EST)
*References*: <hc38kb$i9r$1@smc.vnet.net>
"Rick T" <ratulloch at gmail.com> wrote in message
news:hc38kb$i9r$1 at smc.vnet.net...
> Calculating a given total using only given specific values
>
> Greetings All
>
> I'm trying to figure out a way to calculate a given total
> using only given specific values.
>
> Example:
> The total given is 46
> The numbers I can use are 56,38,20,12,4, and 1
> so the numbers it should use and come back with would be highest to
> lowest
> so it should be 38,4,and 4 because
> these will add up to 46. Is there a name given to this type of
> mathematics?
>
> And does anyone have an example of how to do this?
>
> tia sal22
>
hummm... you say
"so it should be 38,4,and 4"
But 4 occurs one time in the list {56,38,20,12,4, and 1}, so then you want a
number to possibly be repeated?
Ok.
Since the numbers in the list can be repeated, then _one_ way to solve this
is to first try to solve the problem using the original list. If this fails
(i.e. no combination is found which sums to 46), then I duplicated the list,
and tried again, and so on.
I used Subsets to find all possible combinations, added each comb, and see
if it totals the number needed. If so, used Position to find its location in
the Subsets. I am sure there are many other ways to solve this:
check[list_, n_] := Module[{r, pos},
combs = Subsets[list];
pos = Flatten[Position[Total /@ combs, n]];
If[Length[pos] == 0, pos, combs[[pos]]]
]
list = {56, 38, 20, 12, 4, 1};
n = 46;
r = check[list, n];
While[Length[r] == 0,
{list = Flatten[Append[list, list]];
r = check[list, n]}
];
Print[r];
{
{38, 4, 4},
{4, 38, 4},
{20, 12, 1, 12, 1},
{20, 4, 1, 20, 1},
{20, 1, 20, 4, 1},
{12, 1, 20, 12, 1}
}
--Nasser
Prev by Date:
**Re: Two Axis DateListPlot**
Next by Date:
**Re: Summing all the elements along a dimension in a matrix**
Previous by thread:
**Re: Calculating a given total using only given specific**
Next by thread:
**Rotating an Image**
| |