Вспомогательные функции:
function fac(x) {
return x === 1 ? 1 : x*fac(x-1);
}
Число возможных топология для дерева.
Число возможных неукорененных деревьев:
(n) => fac(2*n-5) / Math.pow(2, n-3) / fac(n-3) // n - число таксонов, листьев на дереве
Число возможных укорененных деревьев:
(n) => fac(2*n-3) / Math.pow(2, n-2) / fac(n-2) // n - число таксонов, листьев на дереве