123456789101112 |
- #!/usr/bin/ruby
- func p (n, a, l) { n>0 ? (l.range.map{p(n-1, a+[l[_]], l.slice(_))}) : a };
- func f (n) { n>0 ? (n * f(n - 1)) : 1 };
- func n (n, m) { f(n + m - 1) / f(n) / f(m - 1) };
- p(2, [], %w(iced jam plain)).each { |a|
- say a.map{|pair| pair.join(" ")}.join("\n");
- }
- printf("\nThere are %d ways to pick 7 out of 10\n", n(7, 10));
|