# OK to post homework # Robert Dougherty-Bliss # 2021-05-01 # Assignment 26 read "C26.txt": with(LinearAlgebra): # 1. JT := proc(L, x) local n, M: n := nops(L): M := Matrix([seq([seq(hkn(L[i] + j - i, n, x), j=1..n)], i=1..n)]): Determinant(M): end: # Create the conjugate partition of L. conjugateL := proc(L) Lp := L: conj := []: for k from 1 to L[1] do conj := [op(conj), nops(Lp)]: Lp := select(x -> x > 0, Lp - [1 $ nops(Lp)]): od: conj: end: JT2 := proc(L, x) local n, M, Lc: Lc := conjugateL(L): n := nops(Lc): # Note that n = nops(L) here, not nops(conjugate(L)). M := Matrix([seq([seq(ekn(Lc[i] + j - i, nops(L), x), j=1..n)], i=1..n)]): Determinant(M): end: # 2. with(ListTools): StartShape := proc(Y, k) local row, i, L: L := NULL: for row from 1 to nops(Y) do for i from 1 to nops(Y[row]) while Y[row][i] <= k do od: if i = 1 then break: fi: L := L, i - 1: od: [L]: end: # 3. EstStart := proc(L, k, K) Ys := [seq(GNW(L), n=1..K)]: ps := NULL: for p in Pn(k) do haveShape := nops(select(Y -> StartShape(Y, k) = p, Ys)): ps := ps, [p, evalf(haveShape / K)]: od: [ps]: end: # Note: EstStart([n, n], 2, K) estimates the proportion of two-row tableaux # that have 2 in the first row or second row, like we discussed in class. # EstStart([9 $ 12], 5, 1000); # [[[5], 0.005000000000] # [[4, 1], 0.1080000000] # [[3, 2], 0.1960000000] # [[3, 1, 1], 0.3130000000] # [[2, 2, 1], 0.2270000000] # [[2, 1, 1, 1], 0.1410000000] # [[1, 1, 1, 1, 1], 0.01000000000]]