in reply to coding question

If subset size were known, you'd be counting the combinations.

for my $n (100) { for my $m (1..100) { my $i = 1; $i *= ($n+1-$_)/$_ for 1..$m; printf "C($m,$n) = $i (%.3f bits)\n", log($i)/log(2); } }
Sadly, representing even three elements requires > 16 bits.