组合选择
作者:Jonathan Scott Duff
https://projecteuler.net/problem=53
从五个中选三个,恰好有十种方法,12345
123、124、125、134、135、145、234、235、245 和 345
在组合数学中,我们使用符号 ⁵C₃ = 10。
一般来说,
ⁿCᵣ = n! / r!(n−r)! ,where r ≤ n, n! = n×(n−1)×...×3×2×1, and 0! = 1.
直到 n = 23 时,才有一个值超过一百万:²³C₁₀ = 1144066。
对于 1 ≤ n ≤ 100,ⁿCᵣ 的值(不一定是不同的)有多少个大于一百万?
源代码:prob053-duff.pl
use v6; # brute force sub postfix:<!>($n) { return [*] 1..$n } sub infix:<C>($n,$r) { $n! / ($r! * ($n-$r)!); } my $count = 0; for 1..100 -> $n { for 1..$n -> $r { $count++ if $n C $r > 1_000_000; } } say $count;