sub Prod {
my( $i, $j )= @_;
my $f= $i;
$f *= $j if $i < $j;
for my $p ( $i+1..$j-1 ) {
$f *= $p*$p;
}
return $f;
}
sub Count {
my( $parens, $len )= @_;
return 1 if 1 == $len;
return Prod($parens+1,$parens+$len)/Prod(1,$len)
}
####
(P+1)*(P+2)^2*(P+3)^2*(P+4)/1/2^2/3^2/4
##
##
(P+L)!/P!*(P+L)!/P!*L/(P+1)/(P+L)/L!/L!
or
[(P+L)!/P!/L!]^2*1*L/(P+1)/(P+L)
##
##
[(P+L)!/P!/L!]^2*1*L/(P+1)/(P+L)
== [ C(P+L,P) ] * ??
where
?? == (P+L)!/P!/L!*1*L/(P+1)/(P+L)
== (P+L)!/(P+L) /P!/(P+1) /L!*L
== (P+L-1)! /(P+1)! /(L-1)!
##
##
C(P+L,P)*C(P+L,P+1)/(P+L)
or
C(P+L,L)*C(P+L,L-1)/(P+L)
or ...