#HomeWork#17 #Please do not post homework #Abrar Almahmeed, March 29 # Question 1: RandSYT:=proc(L) local n,k,i,S,r,row,col,L1,T,j: if L=[] then return table(): fi: n:=add(L[k], k=1..nops(L)): S:=[]: for i from 1 to nops(L) do if i = nops(L) or L[i] > L[i+1] then S := [op(S), [i, L[i]]]: fi: od: r := S[rand(1..nops(S))()]: row := r[1]: col := r[2]: L1 := L: L1[row] := L1[row] - 1: if L1[row] = 0 then L1 := [op(1..row-1, L1), op(row+1..nops(L1), L1)]: fi: T := RandSYT(L1): if not type(T, table) then T := table(): fi: T[row, col] := n: return T: end: ########################################## #Question 2: Count := 0: for t from 1 to 10000 do T := RandSYT([5$5]): if assigned(T[1,2]) and T[1,2] = 2 then Count := Count + 1: fi: od: evalf(Count / 10000); 0.5016000000