#Nathan Fox #Homework 8 #I give permission for this file to be posted online ##Read old files read(`C8a.txt`): #Help procedure Help:=proc() : print(` checkRollLD() , checkRandGame1() , G2(n) `): end: ##Problem 2 checkRollLD:=proc(): print(add(x[RollLD([1,1,1,1,1,1])],i=1..6000)): print(add(x[RollLD([1,2,3])],i=1..6000)): print(add(x[RollLD([1,1])],i=1..6000)): print(add(x[RollLD([seq(j*(j+1)/2,j=1..10)])],i=1..6000)): end: ##Problem 3 checkRandGame1:=proc(): print(add(x[RandGame1(10)],i=1..NuGames1(10)*100)): end: ##Problem 4 #G2(n): inputs a positive integer n and #outputs the set of all level-2 games of size n. G2:=proc(n) local S,g1,g2,g3,g4,i,j,k,Gi,Gj,Gk,Gl: option remember: if n=1 then return {[{},{}]}: fi: S:={}: for i from 1 to n-1 do Gi:=G2(i): for j from 1 to n-i-1 do Gj:=G2(j): for k from 1 to n-i-j-1 do Gk:=G2(k): if n-i-j-k-1>=1 then Gl:=G2(n-i-j-k-1): for g1 in Gi do for g2 in Gj do for g3 in Gk do for g4 in Gl do if g1<>g2 and g3<>g4 then S:=S union {[{g1,g2},{g3,g4}]}: fi: od: od: od: od: fi: if i+j+k=n-1 then for g1 in Gi do for g2 in Gj do for g3 in Gk do if g1<>g2 then S:=S union {[{g1,g2},{g3}]}: fi: if g2<>g3 then S:=S union {[{g1},{g2,g3}]}: fi: od: od: od: fi: od: if i+j=n-1 then for g1 in Gi do for g2 in Gj do S:=S union {[{g1},{g2}]}: if g1<>g2 then S:=S union {[{g1,g2},{}],[{},{g1,g2}]}: fi: od: od: fi: od: if i=n-1 then for g1 in Gi do S:=S union {[{g1},{}],[{},{g1}]}: od: fi: od: S: end: