Skip to content

ShorterSideRookPlacementCount ​

The ways to place as many non-attacking rooks as the shorter side of the Ferrers board's bounding rectangle has cells, 0 when they do not fit.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000531via IntegerPartition✓
ShorterSideRookPlacementCount(partition)The ways to place as many non-attacking rooks as the shorter side of the Ferrers board's bounding rectangle has cells, 0 when they do not fit.
Typed signatures
TypePackageApplies
(integer_partition) -> numbercombinatoricsalways

Domain: Partition statistics

Details
  • Defined over IntegerPartition as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a IntegerPartition 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.
  • FindStat's title calls this the leading coefficient of the rook polynomial, but its code takes the entry for the shorter side, which is 0 when no placement fills it; the name follows the code.

Definition

Epsil, as the implementation runs it.

on IntegerPartition, over _x

1 if Length(_x) < 1 else Apply(
                                (r: list<integer>) => r[Min(Length(_x), Max(_x)) +
                                                        1],
                                Fold(
                                      Function(Map(
                                                    Function(a[1] if i == 1 else a[i] +
                                                                                 (b -
                                                                                  (i - 2)) *
                                                                                 a[i - 1], i),
                                                    Range(1, Length(_x) + 1),
                                                  ), a, b),
                                      Map(
                                           Function(1 if i == 1 else 0, i),
                                           Range(1, Length(_x) + 1),
                                         ),
                                      Map(
                                           Function(_x[Length(_x) - i + 1], i),
                                           Range(1, Length(_x)),
                                         ),
                                    ),
                              )

Examples

Basic #

the partition 4+2+14 + 2 + 1 of 77

live ↗
InShorterSideRookPlacementCount(IntegerPartition⁡([4,2,1]))\mathrm{ShorterSideRookPlacementCount}({\operatorname{IntegerPartition}}([4, 2, 1]))Out22

the partition 3+3+13 + 3 + 1 of 77

live ↗
InShorterSideRookPlacementCount(IntegerPartition⁡([3,3,1]))\mathrm{ShorterSideRookPlacementCount}({\operatorname{IntegerPartition}}([3, 3, 1]))Out22
Properties #

FindStat's value for [1]

live ↗
InCombinatorialStat(IntegerPartition⁡([1]),ShorterSideRookPlacementCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([1]), \text{ShorterSideRookPlacementCount})Out11

Known value · FindStat St000531

FindStat's value for [2]

live ↗
InCombinatorialStat(IntegerPartition⁡([2]),ShorterSideRookPlacementCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([2]), \text{ShorterSideRookPlacementCount})Out22

Known value · FindStat St000531

FindStat's value for [3]

live ↗
InCombinatorialStat(IntegerPartition⁡([3]),ShorterSideRookPlacementCount)\mathrm{CombinatorialStat}({\operatorname{IntegerPartition}}([3]), \text{ShorterSideRookPlacementCount})Out33

Known value · FindStat St000531

About
Examples5
CrosswalkFindStat