Robson » Code » PHP » Combinatronics Thing

 
<?    
   // combinatronics thing v1.0
   
   // this function displays the number of times you select a number from a number
   // for example, you can select 2 from 4 a total of 6 times like so:
   // 12 23 34 13 24 14
 
   // this caches factorials, you should remove that if you
   // only plan to use it a small number of times in your scripts
   function fact($number)
   {
       static $fact_cache;
       if ($fact_cache[$number])
           return $fact_cache[$number];
       else
       {
           for ($total = 1, $n = 2; $n <= $number; $n++)
               $total *= $n;
           $fact_cache[$number] = $total;
           return $total;
       }
   }
   
   // the main function
   function number_from_number($n, $r)
   {
       return fact($n) / (fact($r) * fact($n - $r));
   }
   
   // * example use - display all possible combinations from 1 to 8 digits * //
   
   for ($n = 1; $n <= 8; $n++)
       for ($r = 1; $r < $n; $r++)
           echo '<sup>' . $n . '</sup>C<sub>' . $r . '</sub> = ' . number_from_number($n, $r) . '<br>';
?>
 
© 2004-17 robson | cc unless stated