Ask Your Question

Revision history [back]

I am not sure about the notation $\lambda'$ so let me assume that it is the conjugate.

First, to build a matrix and to , you have to index the partitions, which is easy with the enumerate function: sage: n = 6 sage: P = Partitions(n) sage: m = matrix(ZZ, P.cardinality()) sage: list(enumerate(P)) [(0, [6]), (1, [5, 1]), (2, [4, 2]), (3, [4, 1, 1]), (4, [3, 3]), (5, [3, 2, 1]), (6, [3, 1, 1, 1]), (7, [2, 2, 2]), (8, [2, 2, 1, 1]), (9, [2, 1, 1, 1, 1]), (10, [1, 1, 1, 1, 1, 1])]

In the other way, given a partition, you need to be able to find its index, which is doable with this dictionary:

sage: part_to_int = {p:i for i,p in enumerate(P)}

Now, you can construct your matrix:

sage: for i,p in enumerate(P):
....:     j = part_to_int[p.conjugate()]
....:     m[i,j] = 1

You have:

sage: m
[0 0 0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[1 0 0 0 0 0 0 0 0 0 0]

sage: m^2
[1 0 0 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 0 0 1]

If $\lambda'$ does not denote the conjugate, you can adapt by replacing p.conjugate() with your favorite function.

I am not sure about the notation $\lambda'$ so let me assume that it is the conjugate.

First, to build a matrix and to , matrix, you have to index the partitions, which is easy with the enumerate function: function:

sage: n = 6
 sage: P = Partitions(n)
 sage: m = matrix(ZZ, P.cardinality())
 sage: list(enumerate(P))
 [(0, [6]),
  (1, [5, 1]),
  (2, [4, 2]),
  (3, [4, 1, 1]),
  (4, [3, 3]),
  (5, [3, 2, 1]),
  (6, [3, 1, 1, 1]),
  (7, [2, 2, 2]),
  (8, [2, 2, 1, 1]),
  (9, [2, 1, 1, 1, 1]),
  (10, [1, 1, 1, 1, 1, 1])]

1])]

In the other way, given a partition, you need to be able to find its index, which is doable with this dictionary:

sage: part_to_int = {p:i for i,p in enumerate(P)}

Now, you can construct your matrix:

sage: for i,p in enumerate(P):
....:     j = part_to_int[p.conjugate()]
....:     m[i,j] = 1

You have:

sage: m
[0 0 0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[1 0 0 0 0 0 0 0 0 0 0]

sage: m^2
[1 0 0 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 0 0 0 1 0]
[0 0 0 0 0 0 0 0 0 0 1]

If $\lambda'$ does not denote the conjugate, you can adapt by replacing p.conjugate() with your favorite function.