MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

A friendly challenge: Generalized Partition

  • To: mathgroup at
  • Subject: [mg34858] A friendly challenge: Generalized Partition
  • From: gleam at ("Mr. Wizard")
  • Date: Tue, 11 Jun 2002 05:00:21 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

In the 4.1 help browser, in Further Examples under Take, there is code
for a generalized partition function, called gg.  This code is
somewhat long and extremely slow.  I challenge you to duplicate the
functionality of this code (ignoring the ggCheckArgs condition), while
making it 1) as sort as possible, and/or 2) as fast as possible.

Your function must be in good form, leaving no stray assignments, i.e.
using the appropriate scoping construct(s).

For efficiency testing, I will use (where func is your function):

a = Range[2000];
b = Table[Random[Integer, {1, 20}], {150}];
First[Timing[Do[func[a, b], {100}]]]

I will post my versions after a little while.  For reference, on my
machine, the function from the help files, omitting the ggCheckArgs
condition, takes 8 seconds; my fastest version takes 0.33 seconds.  My
shortest version is 44 characters in length, and takes 0.94 seconds.

Good luck!


  • Prev by Date: Re: which Linux does Mathematica run on?
  • Next by Date: "TableLabel"?
  • Previous by thread: Problem with entering text into a mathematica notebook by VB or QuicKeys
  • Next by thread: Re: A friendly challenge: Generalized Partition