Opened 13 years ago

Closed 12 years ago

#2851 closed enhancement (wontfix)

dojo.math.combinations is correct but inefficient

Reported by: guest Owned by: anonymous
Priority: high Milestone:
Component: General Version: 0.4.2
Keywords: math combinations Cc:
Blocked By: Blocking:

Description

Great work guys!

I just wanted to suggest an improvement to dojo.math.combinations that does less math:

public int combinations(final int n, final int r) {

if(n==0
r==0) return 1;

var bigger; var smaller;

if (r<(n-r)) {

bigger=n-r; smaller=r;

} else {

bigger=r; smaller=n-r;

} var num=1; for(var i=n;i>bigger;i--){ num *= i; } return num/factorial(smaller);

}

This produces the same results but is faster and uses fewer factorial() calls. Write if you want me to explain the math behind it: gborek@…

-gmb

Change History (1)

comment:1 Changed 12 years ago by Adam Peller

Resolution: wontfix
Status: newclosed

code was not ported to 0.9

Note: See TracTickets for help on using tickets.