SwapEquivalentTreeCount
The number of binary trees that become this one when the children at any nodes are swapped: each node with different subtrees (an only child counts as different from the empty one) doubles the count.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000412via BinaryTree✓SwapEquivalentTreeCount(tree)The number of binary trees that become this one when the children at any nodes are swapped: each node with different subtrees (an only child counts as different from the empty one) doubles the count.Typed signatures
| Type | Package | Applies |
|---|---|---|
(binary_tree) -> number | combinatorics | always |
Details
- Defined over
BinaryTreeas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
BinaryTreeand nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer. - FindStat's St000412: the binary trees with the same underlying unordered (rooted) tree.
Definition
Epsil, as the implementation runs it.
on BinaryTree, over _x
2 ^ Apply(
Function(0 if t in Integers else (0 if Apply(
Function(
(True if b in
Integers else False) if a in Integers else False if b in Integers else (True if self(self, a[2], b[2]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False) if self(self, a[1], b[1]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False,
self,
a,
b,
),
Function(
(True if b in
Integers else False) if a in Integers else False if b in Integers else (True if self(self, a[2], b[2]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False) if self(self, a[1], b[1]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False,
self,
a,
b,
),
t[1],
t[2],
) else 1) + self(
self,
t[1],
) +
self(self, t[2]), self, t),
Function(0 if t in Integers else (0 if Apply(
Function(
(True if b in
Integers else False) if a in Integers else False if b in Integers else (True if self(self, a[2], b[2]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False) if self(self, a[1], b[1]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False,
self,
a,
b,
),
Function(
(True if b in
Integers else False) if a in Integers else False if b in Integers else (True if self(self, a[2], b[2]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False) if self(self, a[1], b[1]) else self(self, a[2], b[1]) if self(self, a[1], b[2]) else False,
self,
a,
b,
),
t[1],
t[2],
) else 1) + self(
self,
t[1],
) +
self(self, t[2]), self, t),
_x,
)Examples
Properties #
About
| Examples | 4 |
|---|---|
| Crosswalk | FindStat |