#Dayoon Kim, 2024-4-21, HW26 Help:=proc(): print(`Pairs(SetL),Triples(SetL) `): end: #HW26-2 Pairs:=proc(SetL) local ALPH,LEN,WORD,J,C,T,DB,L1,L2,PAIRS,PAIR_COUNT,PAIR_COUNT_MORE_THAN_TEN: ALPH:=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]: DB:=ENG(): PAIRS:=table(): for LEN in SetL do: for WORD in DB[LEN] do: for J from 1 to LEN do: if J < LEN then: if not assigned(PAIRS[WORD[J], WORD[J+1]]) then PAIRS[WORD[J], WORD[J+1]]:= 0: fi: PAIRS[WORD[J], WORD[J+1]]:= PAIRS[WORD[J], WORD[J+1]] + 1: fi: od: od: od: # Count the pairs PAIR_COUNT:=0: PAIR_COUNT_MORE_THAN_TEN:=0: for L1 in ALPH do: for L2 in ALPH do: if assigned(PAIRS[L1,L2]) and PAIRS[L1,L2] > 0 then: PAIR_COUNT:=PAIR_COUNT+1: fi: if assigned(PAIRS[L1,L2]) and PAIRS[L1,L2] > 10 then: PAIR_COUNT_MORE_THAN_TEN:=PAIR_COUNT_MORE_THAN_TEN+1: fi: od: od: [PAIR_COUNT, PAIR_COUNT_MORE_THAN_TEN]: end: #Results #Pairs({3}); #[349, 39] #Pairs({3,4,5}); #[497, 331] ## Triples:=proc(SetL) local ALPH,LEN,WORD,J,C,T,DB,L1,L2,L3,TRIPLES,TRIPLE_COUNT: ALPH := [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]: DB:=ENG(): TRIPLES:=table(): for LEN in SetL do: for WORD in DB[LEN] do: for J from 1 to LEN do: if J < LEN then: if not assigned(TRIPLES[WORD[J], WORD[J+1], WORD[J+2]]) then TRIPLES[WORD[J], WORD[J+1], WORD[J+2]]:= 0: fi: TRIPLES[WORD[J], WORD[J+1], WORD[J+2]]:= TRIPLES[WORD[J], WORD[J+1], WORD[J+2]] + 1: fi: od: od: od: # Count the triples TRIPLE_COUNT:=0: for L1 in ALPH do: for L2 in ALPH do: for L3 in ALPH do: if assigned(TRIPLES[L1,L2,L3]) and TRIPLES[L1,L2,L3] > 0 then: TRIPLE_COUNT:=TRIPLE_COUNT+1: fi: od: od: od: TRIPLE_COUNT: end: