Skip to content

MatrixInversionNumber ​

The sum of a(i, j) a(k, l) over the pairs of entries with i > k and j < l.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000067via AlternatingSignMatrix✓
MatrixInversionNumber(tableau)The sum of a(i, j) a(k, l) over the pairs of entries with i > k and j < l.
Typed signatures
TypePackageApplies
(alternating_sign_matrix) -> numbercombinatoricsalways

Domain: Alternating sign matrix statistics

Details
  • Defined over AlternatingSignMatrix as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a AlternatingSignMatrix 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 St000067. On a permutation matrix it is the number of inversions.

Definition

Epsil, as the implementation runs it.

on AlternatingSignMatrix, over _x

0 if Length(_x) < 1 else Apply((cells: list<integer>) => Apply((side: integer) => Max(Sum(Map(Function(cells[u] *
                                                                                                       Max(Sum(Map(
                                                                                                                    Function(cells[v] if (v -
                                                                                                                                          ((v - 1) %
                                                                                                                                           side +
                                                                                                                                           1)) /
                                                                                                                                         side +
                                                                                                                                         1 <
                                                                                                                                         (u -
                                                                                                                                          ((u - 1) %
                                                                                                                                           side +
                                                                                                                                           1)) /
                                                                                                                                         side +
                                                                                                                                         1 &&
                                                                                                                                         (v - 1) %
                                                                                                                                         side +
                                                                                                                                         1 >
                                                                                                                                         (u - 1) %
                                                                                                                                         side +
                                                                                                                                         1 else 0, v),
                                                                                                                    Range(1, side * side),
                                                                                                                  )), 0), u), Range(1, side * side))), 0), Length(_x)), Flatten(_x))

Examples

Basic #

the alternating sign matrix [[0,1,0],[1,−1,1],[0,1,0]][[0,1,0],[1,-1,1],[0,1,0]]

live ↗
InMatrixInversionNumber(AlternatingSignMatrix⁡([[0,1,0],[1,−1,1],[0,1,0]]))\mathrm{MatrixInversionNumber}({\operatorname{AlternatingSignMatrix}}([[0, 1, 0], [1, -1, 1], [0, 1, 0]]))Out22
Properties #

FindStat's value for [[1]]

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[1]]),MatrixInversionNumber)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[1]]), \text{MatrixInversionNumber})Out00

Known value · FindStat St000067

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

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[0,1],[1,0]]),MatrixInversionNumber)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[0, 1], [1, 0]]), \text{MatrixInversionNumber})Out11

Known value · FindStat St000067

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

live ↗
InCombinatorialStat(AlternatingSignMatrix⁡([[1,0],[0,1]]),MatrixInversionNumber)\mathrm{CombinatorialStat}({\operatorname{AlternatingSignMatrix}}([[1, 0], [0, 1]]), \text{MatrixInversionNumber})Out00

Known value · FindStat St000067

About
Examples4
CrosswalkFindStat