Ribbon Shaped Tableaux#

class sage.combinat.ribbon_shaped_tableau.RibbonShapedTableau(parent, t)[source]#

Bases: SkewTableau

A ribbon shaped tableau.

For the purposes of this class, a ribbon shaped tableau is a skew tableau whose shape is a skew partition which:

  • has at least one cell in row \(1\);

  • has at least one cell in column \(1\);

  • has exactly one cell in each of \(q\) consecutive diagonals, for some nonnegative integer \(q\).

A ribbon is given by a list of the rows from top to bottom.

EXAMPLES:

sage: x = RibbonShapedTableau([[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]]); x
[[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]]
sage: x.pp()
  .  .  .  2  3
  .  1  4  5
  3  2
sage: x.shape()
[5, 4, 2] / [3, 1]
>>> from sage.all import *
>>> x = RibbonShapedTableau([[None, None, None, Integer(2), Integer(3)], [None, Integer(1), Integer(4), Integer(5)], [Integer(3), Integer(2)]]); x
[[None, None, None, 2, 3], [None, 1, 4, 5], [3, 2]]
>>> x.pp()
  .  .  .  2  3
  .  1  4  5
  3  2
>>> x.shape()
[5, 4, 2] / [3, 1]

The entries labeled by None correspond to the inner partition. Using None is optional; the entries will be shifted accordingly.

sage: x = RibbonShapedTableau([[2,3],[1,4,5],[3,2]]); x.pp()
  .  .  .  2  3
  .  1  4  5
  3  2
>>> from sage.all import *
>>> x = RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)],[Integer(3),Integer(2)]]); x.pp()
  .  .  .  2  3
  .  1  4  5
  3  2
height()[source]#

Return the height of self.

The height is given by the number of rows in the outer partition.

EXAMPLES:

sage: RibbonShapedTableau([[2,3],[1,4,5]]).height()
2
>>> from sage.all import *
>>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).height()
2
spin()[source]#

Return the spin of self.

EXAMPLES:

sage: RibbonShapedTableau([[2,3],[1,4,5]]).spin()
1/2
>>> from sage.all import *
>>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).spin()
1/2
width()[source]#

Return the width of the ribbon.

This is given by the length of the longest row in the outer partition.

EXAMPLES:

sage: RibbonShapedTableau([[2,3],[1,4,5]]).width()
4
sage: RibbonShapedTableau([]).width()
0
>>> from sage.all import *
>>> RibbonShapedTableau([[Integer(2),Integer(3)],[Integer(1),Integer(4),Integer(5)]]).width()
4
>>> RibbonShapedTableau([]).width()
0
class sage.combinat.ribbon_shaped_tableau.RibbonShapedTableaux(category=None)[source]#

Bases: SkewTableaux

The set of all ribbon shaped tableaux.

Element[source]#

alias of RibbonShapedTableau

from_shape_and_word(shape, word)[source]#

Return the ribbon corresponding to the given ribbon shape and word.

EXAMPLES:

sage: RibbonShapedTableaux().from_shape_and_word([1,3],[1,3,3,7])
[[None, None, 1], [3, 3, 7]]
>>> from sage.all import *
>>> RibbonShapedTableaux().from_shape_and_word([Integer(1),Integer(3)],[Integer(1),Integer(3),Integer(3),Integer(7)])
[[None, None, 1], [3, 3, 7]]
options = Current options for Tableaux   - ascii_art:  repr   - convention: English   - display:    list   - latex:      diagram[source]#
class sage.combinat.ribbon_shaped_tableau.Ribbon_class(parent, t)[source]#

Bases: RibbonShapedTableau

This exists solely for unpickling Ribbon_class objects.

class sage.combinat.ribbon_shaped_tableau.StandardRibbonShapedTableaux(category=None)[source]#

Bases: StandardSkewTableaux

The set of all standard ribbon shaped tableaux.

INPUT:

  • shape – (optional) the composition shape of the rows

Element[source]#

alias of RibbonShapedTableau

from_permutation(p)[source]#

Return a standard ribbon of size len(p) from a permutation p. The lengths of each row are given by the distance between the descents of the permutation p.

EXAMPLES:

sage: import sage.combinat.ribbon_shaped_tableau as rst
sage: [StandardRibbonShapedTableaux().from_permutation(p)
....:  for p in Permutations(3)]
[[[1, 2, 3]],
 [[None, 2], [1, 3]],
 [[1, 3], [2]],
 [[None, 1], [2, 3]],
 [[1, 2], [3]],
 [[1], [2], [3]]]
>>> from sage.all import *
>>> import sage.combinat.ribbon_shaped_tableau as rst
>>> [StandardRibbonShapedTableaux().from_permutation(p)
...  for p in Permutations(Integer(3))]
[[[1, 2, 3]],
 [[None, 2], [1, 3]],
 [[1, 3], [2]],
 [[None, 1], [2, 3]],
 [[1, 2], [3]],
 [[1], [2], [3]]]
from_shape_and_word(shape, word)[source]#

Return the ribbon corresponding to the given ribbon shape and word.

EXAMPLES:

sage: StandardRibbonShapedTableaux().from_shape_and_word([2,3],[1,2,3,4,5])
[[None, None, 1, 2], [3, 4, 5]]
>>> from sage.all import *
>>> StandardRibbonShapedTableaux().from_shape_and_word([Integer(2),Integer(3)],[Integer(1),Integer(2),Integer(3),Integer(4),Integer(5)])
[[None, None, 1, 2], [3, 4, 5]]
options = Current options for Tableaux   - ascii_art:  repr   - convention: English   - display:    list   - latex:      diagram[source]#
class sage.combinat.ribbon_shaped_tableau.StandardRibbonShapedTableaux_shape(shape)[source]#

Bases: StandardRibbonShapedTableaux

Class of standard ribbon shaped tableaux of ribbon shape shape.

EXAMPLES:

sage: StandardRibbonShapedTableaux([2,2])
Standard ribbon shaped tableaux of shape [2, 2]
sage: StandardRibbonShapedTableaux([2,2]).first()
[[None, 2, 4], [1, 3]]
sage: StandardRibbonShapedTableaux([2,2]).last()
[[None, 1, 2], [3, 4]]

sage: # needs sage.graphs sage.modules
sage: StandardRibbonShapedTableaux([2,2]).cardinality()
5
sage: StandardRibbonShapedTableaux([2,2]).list()
[[[None, 1, 3], [2, 4]],
 [[None, 1, 2], [3, 4]],
 [[None, 2, 3], [1, 4]],
 [[None, 2, 4], [1, 3]],
 [[None, 1, 4], [2, 3]]]
sage: StandardRibbonShapedTableaux([3,2,2]).cardinality()
155
>>> from sage.all import *
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)])
Standard ribbon shaped tableaux of shape [2, 2]
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).first()
[[None, 2, 4], [1, 3]]
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).last()
[[None, 1, 2], [3, 4]]

>>> # needs sage.graphs sage.modules
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).cardinality()
5
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).list()
[[[None, 1, 3], [2, 4]],
 [[None, 1, 2], [3, 4]],
 [[None, 2, 3], [1, 4]],
 [[None, 2, 4], [1, 3]],
 [[None, 1, 4], [2, 3]]]
>>> StandardRibbonShapedTableaux([Integer(3),Integer(2),Integer(2)]).cardinality()
155
first()[source]#

Return the first standard ribbon of self.

EXAMPLES:

sage: StandardRibbonShapedTableaux([2,2]).first()
[[None, 2, 4], [1, 3]]
>>> from sage.all import *
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).first()
[[None, 2, 4], [1, 3]]
last()[source]#

Return the last standard ribbon of self.

EXAMPLES:

sage: StandardRibbonShapedTableaux([2,2]).last()
[[None, 1, 2], [3, 4]]
>>> from sage.all import *
>>> StandardRibbonShapedTableaux([Integer(2),Integer(2)]).last()
[[None, 1, 2], [3, 4]]