I jumped the gun earlier with my success of adding on negative numbers. It
ran out of memory with N=14*2 = 28

Roger, your solution solved the problem efficiently. I will study it and
the essay. Since there are multiple solutions to the target number, I
imagine if I compare enough reports and join the solutions I'll come to
only a handful or one solution across all reports. The first report I tried
had 474 solutions, when I hear there should be only one that satisfies the
business logic I'm trying to reverse engineer.

Thank you again.


On Wed, Oct 16, 2013 at 7:07 PM, Roger Hui <[email protected]>wrote:

> A shorter expression for the table c :
>
>    c =: _1 0 1{~((#x)#3)#:i.3^#x
>    c -: <:3#.^:_1 i.3^#x
> 1
>
>
>
> On Wed, Oct 16, 2013 at 3:41 PM, Roger Hui <[email protected]
> >wrote:
>
> >    x=: 1 2.5 3.5 10 12 30
> >
> >    c=: _1 0 1{~((#x)#3)#:i.3^#x
> >    ] d=: (15 = c+/ .*x)#c
> > _1 _1 _1  1  1 0
> > _1  1  1  1  0 0
> >  1 _1 _1 _1  0 1
> >  1  1  1 _1 _1 1
> >
> >    d +/ .*x
> > 15 15 15 15
> >
> > See also http://www.jsoftware.com/jwiki/Essays/Odometer<
> http://www.jsoftware.com/jwiki/Essays/Odometer?highlight=%28xkcd%29>
> >
> >
> > On Wed, Oct 16, 2013 at 3:33 PM, Joe Bogner <[email protected]> wrote:
> >
> >> I'm working on a question that I was hoping J could help answer.
> >>
> >> I have a overall sum on a report and I'm trying to figure out what line
> >> items went into it. The line items can be ignored, added or subtracted.
> >>
> >> In other words, given a value let's say 15, what combinations of add,
> >> subtracting or ignoring numbers of a list would result in that sum?
> >>
> >> I found a solution on the right rack in J
> >>
> >>
> >>
> http://stackoverflow.com/questions/4632322/finding-all-possible-combinations-of-numbers-to-reach-a-given-sum
> >>
> >> (]#~15=+/@>)(]<@#~[:#:@i.2^#)1 5 10 2.5 2.5
> >>
> >>
> >> That only appears to work on the add case. For example, if it worked as
> I
> >> desired, it would output
> >>
> >>
> >> (]#~15=+/@>)(]<@#~[:#:@i.2^#) 10 2.5 12 3.5 1 30
> >>
> >> 10 3.5 2.5 -1
> >>
> >> Any ideas on how to approach this or any solutions handy?
> >>
> >> This post sounds like the right approach but I don't know how to
> implement
> >> it:
> >>
> >>
> >>
> http://stackoverflow.com/questions/10943562/find-all-the-addition-and-subtraction-combinations-from-an-array-of-numbers
> >>
> >> My report has between 10-55 possible combinations of numbers on it
> >> depending on what the report is run on. The specific one I'm solving
> right
> >> now has 29
> >>
> >> Thanks
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> >
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to