21 lines
673 B
Plaintext
21 lines
673 B
Plaintext
import "./fmt" for Fmt
|
|
|
|
var data = [85, 88, 75, 66, 25, 29, 83, 39, 97, 68, 41, 10, 49, 16, 65, 32, 92, 28, 98]
|
|
|
|
var pick // recursive
|
|
pick = Fn.new { |at, remain, accu, treat|
|
|
if (remain == 0) return (accu > treat) ? 1 : 0
|
|
return pick.call(at-1, remain-1, accu + data[at-1], treat) +
|
|
((at > remain) ? pick.call(at-1, remain, accu, treat) : 0)
|
|
}
|
|
|
|
var treat = 0
|
|
var total = 1
|
|
for (i in 0..8) treat = treat + data[i]
|
|
for (i in 19..11) total = total * i
|
|
for (i in 9..1) total = total / i
|
|
var gt = pick.call(19, 9, 0, treat)
|
|
var le = (total - gt).truncate
|
|
Fmt.print("<= : $f\% $d", 100 * le / total, le)
|
|
Fmt.print(" > : $f\% $d", 100 * gt / total, gt)
|