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
