8 # ======================================================================
9 # $set1->subset($set2);
10 # ======================================================================
17 for ( $b = 1; $b <= $bits; ++$b )
20 $set1 = new Bit::Vector($b);
21 $set2 = new Bit::Vector($b);
26 for ( $k = 0; $k <= $b; ++$k )
28 $c1 += (1<<$k) * &binomial($b,$k);
31 for ( $i = 0; $i < (1<<$b); ++$i )
34 for ( $k = 0; $k < $b; ++$k )
36 if ($c & 1) { $set1->Bit_On($k); } else { $set1->Bit_Off($k); }
39 for ( $j = 0; $j < (1<<$b); ++$j )
42 for ( $k = 0; $k < $b; ++$k )
44 if ($c & 1) { $set2->Bit_On($k); } else { $set2->Bit_Off($k); }
47 if ($set1->subset($set2)) { ++$c2; }
52 {print "ok $n\n";} else {print "not ok $n\n";}
64 if (($n <= 0) || ($k <= 0) || ($n <= $k)) { return(1); }
65 if ($k > $n - $k) { $k = $n - $k; }
71 return(int($prod + 0.5));