Skip to content

ProtectionNumber ​

BinaryTree: The edges from the root to the nearest leaf, a binary tree's empty subtree counting as a leaf. OrderedTree: The edges from the root to the nearest leaf.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000701via BinaryTree✓St000700via OrderedTree✓
ProtectionNumber(tree)BinaryTree: The number of nodes on a shortest path from the root to an empty subtree. OrderedTree: The distance from the root to the nearest leaf.
Typed signatures
TypePackageApplies
(binary_tree | ordered_tree) -> numbercombinatoricsalways

Domain: Tree statistics

Details
  • Defined over BinaryTree as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a BinaryTree and 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.
  • Defined over OrderedTree as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a OrderedTree and 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.

Definition

Epsil, as the implementation runs it.

on BinaryTree, over _x

Apply(
       Function(0 if t in Integers else 1 + Min(
                                                 self(self, t[1]),
                                                 self(self, t[2]),
                                               ), self, t),
       Function(0 if t in Integers else 1 + Min(
                                                 self(self, t[1]),
                                                 self(self, t[2]),
                                               ), self, t),
       _x,
     )

on OrderedTree, over _x

Apply(
       Function(0 if Length(t) == 0 else 1 + Fold(
                                                   Function(Min(a, b), a, b),
                                                   PositiveInfinity,
                                                   Map(Function(
                                                                 self(self, c),
                                                                 c,
                                                               ), t),
                                                 ), self, t),
       Function(0 if Length(t) == 0 else 1 + Fold(
                                                   Function(Min(a, b), a, b),
                                                   PositiveInfinity,
                                                   Map(Function(
                                                                 self(self, c),
                                                                 c,
                                                               ), t),
                                                 ), self, t),
       _x,
     )

Examples

Basic #

the binary tree [[.,.],[[.,.],.]][[.,.],[[.,.],.]]

live ↗
InProtectionNumber(BinaryTree⁡([[0,0],[[0,0],0]]))\mathrm{ProtectionNumber}({\operatorname{BinaryTree}}(\bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, \bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, 0\bigr\rbrack\bigr\rbrack))Out22

the ordered tree [[],[[]],[]][[],[[]],[]]

live ↗
InProtectionNumber(OrderedTree⁡([[],[[]],[]]))\mathrm{ProtectionNumber}({\operatorname{OrderedTree}}(\bigl\lbrack\bigl\lbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigr\rbrack\bigr\rbrack))Out11
Properties #

FindStat's value for [.,.]

live ↗
InCombinatorialStat(BinaryTree⁡([0,0]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack0, 0\bigr\rbrack), \text{ProtectionNumber})Out11

Known value · FindStat St000701

FindStat's value for [.,[.,.]]

live ↗
InCombinatorialStat(BinaryTree⁡([0,[0,0]]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack0, \bigl\lbrack0, 0\bigr\rbrack\bigr\rbrack), \text{ProtectionNumber})Out11

Known value · FindStat St000701

FindStat's value for [[.,.],.]

live ↗
InCombinatorialStat(BinaryTree⁡([[0,0],0]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, 0\bigr\rbrack), \text{ProtectionNumber})Out11

Known value · FindStat St000701

FindStat's value for [[]]

live ↗
InCombinatorialStat(OrderedTree⁡([[]]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{OrderedTree}}(\bigl\lbrack\bigl\lbrack\bigr\rbrack\bigr\rbrack), \text{ProtectionNumber})Out11

Known value · FindStat St000700

FindStat's value for [[[]]]

live ↗
InCombinatorialStat(OrderedTree⁡([[[]]]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{OrderedTree}}(\bigl\lbrack\bigl\lbrack\bigl\lbrack\bigr\rbrack\bigr\rbrack\bigr\rbrack), \text{ProtectionNumber})Out22

Known value · FindStat St000700

FindStat's value for [[],[]]

live ↗
InCombinatorialStat(OrderedTree⁡([[],[]]),ProtectionNumber)\mathrm{CombinatorialStat}({\operatorname{OrderedTree}}(\bigl\lbrack\bigl\lbrack\bigr\rbrack, \bigl\lbrack\bigr\rbrack\bigr\rbrack), \text{ProtectionNumber})Out11

Known value · FindStat St000700

About
Examples8
CrosswalkFindStat ×2