Skip to content

MaximalRookPlacementCount ​

The ways to place as many non-attacking rooks as possible on the Ferrers board of the diagram.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001659via IntegerPartition✓St001660via SkewPartition✓
MaximalRookPlacementCount(partition)The ways to place as many non-attacking rooks as possible on the Ferrers board of the diagram.
Typed signatures
TypePackageApplies
(integer_partition | skew_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.

Definition

Epsil, as the implementation runs it.

on IntegerPartition, over _x

1 if Length(_x) < 1 else Apply(
                                (r: list<integer>) => r[Max(Map(
                                                                 Function(i if r[i] >
                                                                               0 else 0, i),
                                                                 Range(
                                                                        1,
                                                                        Length(_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)),
                                         ),
                                    ),
                              )

on SkewPartition, over _x

1 if Length(_x[1]) == 0 else Apply((lam: list<integer>) => Apply((raw: list<integer>) => Apply(
                                                                                                (mu: list<integer>) => Apply(
                                                                                                                              (v: list<integer>) => Apply(
                                                                                                                                                           (top: integer) => Max(Sum(Map(Function(v[m + 1] if Max(Sum(Map(Function(1 if m %
                                                                                                                                                                                                                                        2 ^
                                                                                                                                                                                                                                        (c + 1) >=
                                                                                                                                                                                                                                        2 ^ c else 0, c), Range(0, Max(lam) - 1))), 0) ==
                                                                                                                                                                                                              top else 0, m), Range(0, 2 ^ Max(lam) -
                                                                                                                                                                                                                                    1))), 0),
                                                                                                                                                           Max(Map(
                                                                                                                                                                    Function(Max(Sum(Map(Function(1 if m %
                                                                                                                                                                                                       2 ^
                                                                                                                                                                                                       (c + 1) >=
                                                                                                                                                                                                       2 ^ c else 0, c), Range(0, Max(lam) - 1))), 0) if v[m + 1] >
                                                                                                                                                                                                                                                    0 else 0, m),
                                                                                                                                                                    Range(0, 2 ^ Max(lam) -
                                                                                                                                                                             1),
                                                                                                                                                                  )),
                                                                                                                                                         ),
                                                                                                                              Fold(
                                                                                                                                    Function(Map(Function(a[m + 1] +
                                                                                                                                                          Max(Sum(Map(
                                                                                                                                                                       Function(a[m -
                                                                                                                                                                                  2 ^ c +
                                                                                                                                                                                  1] if m %
                                                                                                                                                                                       2 ^
                                                                                                                                                                                       (c + 1) >=
                                                                                                                                                                                       2 ^ c else 0, c),
                                                                                                                                                                       Filter(Range(0, Max(lam) - 1), Function(mu[b] <= c &&
                                                                                                                                                                                                               c < lam[b], c)),
                                                                                                                                                                     )), 0), m), Range(0, 2 ^ Max(lam) -
                                                                                                                                                                         1)), a, b),
                                                                                                                                    Map(
                                                                                                                                         Function(1 if m == 0 else 0, m),
                                                                                                                                         Range(0, 2 ^ Max(lam) -
                                                                                                                                                  1),
                                                                                                                                       ),
                                                                                                                                    Range(1, Length(lam)),
                                                                                                                                  ),
                                                                                                                            ),
                                                                                                Map(
                                                                                                     Function(raw[i] if i <= Length(raw) else 0, i),
                                                                                                     Range(1, Length(lam)),
                                                                                                   ),
                                                                                              ), _x[2]), _x[1])

Examples

Basic #

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

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

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

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

FindStat's value for [1]

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

Known value · FindStat St001659

FindStat's value for [2]

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

Known value · FindStat St001659

FindStat's value for [3]

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

Known value · FindStat St001659

About
Examples5
CrosswalkFindStat ×2