Sunday, September 21, 2008

Generating Combinations in Ruby and Javascript

Hey, time to dust off your discrete math text! (The one I used is Discrete Mathematics and Its Applications by Kenneth H. Rosen). The number of combinations of r items that can be selected from n items is given by the formula = n!/r!(n - r)! (note to self, render this with MathML). The following three code blocks show how to return those combinations in Ruby, Javascript, and Javascript with Prototype. Note that these functions yield (in Ruby) or do a callback with (Javascript) each combination. These could easily be modified to return an array of the combinations. After the three code snippets is a live example of the Javascript code.

First the Ruby:

Now the Javascript:

And finally Javascript with Prototype (wow, now like Ruby):

Wow, if that doesn't make you want to learn Prototype using Prototype and You Never Knew JavaScript Could Do This! then nothing will.

[ combinations ]