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)FindStat
St000531via 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
| Type | Package | Applies |
|---|---|---|
(integer_partition) -> number | combinatorics | always |
Details
- Defined over
IntegerPartitionas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
IntegerPartitionand 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
Properties #
About
| Examples | 5 |
|---|---|
| Crosswalk | FindStat |