Lippu, Yes, your par2 is MUCH faster than Raul's nparts. If I have some time, I will put together a time/space test for all the proposed solutions.
Skip Skip Cave Cave Consulting LLC On Wed, Oct 25, 2017 at 1:58 PM, Lippu Esa <[email protected]> wrote: > Hello, > > I get the following with the partition verb I posted last Thursday (J8.06 > and 4 core 2.9GHz CPU and 16GB RAM): > > par2=: 4 : 0 > a=.(y#x) #: i. x^y > sort ~.((x=#@~."1 a)#a) </."1 i.y > ) > > ts '#5 par2 8' > 4.15977615 151821824 > ts '# 6 par2 8' > 2.55073168 358252032 > > Esa > > -----Original Message----- > From: Programming [mailto:[email protected]] On > Behalf Of 'Skip Cave' via Programming > Sent: Wednesday, October 25, 2017 8:12 PM > To: [email protected] > Subject: Re: [Jprogramming] Partitions > > Raul got it right with his nparts verb. In my original example of par, I > constructed the required output of par by hand. In that process, I > overlooked the majority of the possible combinations of the ways that 5 > items could be separated into 3 containers. That caused confusion in the > various attempts to implement what I proposed. I wasn't very thorough in > vetting my example output, and Mike valiantly tried to point out the flaws > in my proposal. Raul showed how much I missed clearly in my par example > when he demonstrated: > > #3 nparts 5 > 25 > #3 par 5 > 6 > > Rob also pointed out the issue in his posts. Erling's v7 verb got to the > same result as Raul's nparts. > > The number of possible partitions of n objects grows rapidly with n: > > #3 nparts 5 > > 25 > > #3 nparts 6 > > 90 > > #3 nparts 7 > > 301 > > #3 nparts 8 > > 966 > > > > Increasing the number of partitions reduces the number of combinations but > significantly increases execution time with Raul's nparts : > > > #4 nparts 8 > > 1701 > > #5 nparts 8 > > 1050 > > #6 nparts 8 > > 266 > > > The 5 #nparts 8 took over 30 seconds to run on my i7 laptop. The #6 nparts > 8 took about 3 minutes. > > > Is there a more computationally efficient way to calculate the partitions? > > > Skip > ---------------------------------------------------------------------- > 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
