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

Reply via email to