#Here (without proof) are the five hundred 'formulas' for 5-card Krypto. #For method of generation, see the companion file 'fournums', which #sketches the smaller case of 4-card Krypto. # rusin@math.niu.edu 2002/01/30 #If you perform the following steps, this file will also automatically create #the 27,142 values obtainable from five numbers x1,x2,x3,x4,x5, using Maple. # #Save this file as file500 , fire up Maple, and issue this command: # read file500: #(strip the leading pound-sign!) After a few minutes' delay, there will be #created a set L of the values. You can print them with one of these #commands, but I don't advise any of them! (Too long) # for i to nops(L) do print(L[i]):od: #longest, most legible # for i to nops(L) do lprint(L[i]):od: #one formula per line # lprint(L): #compact, not very human-legible # save(L, MYFILE): #writes list to a file #You can easily use them to search for ways to solve a Krypto hand. #Try play(a,b,c,d,e,f); to search for ways to combine {a,b,c,d,e} to #yield f. #What follows are the 500 formulas, then some Maple routines to #play with them, and some miscellaneous commentary. G:=[ #The 500 five-variable formulas for Krypto, sorted by symmetry: # #Two with symmetry group of order 120: x1+x2+x3+x4+x5, x1*x2*x3*x4*x5, # #Ten with group Sym(4), of order 24: (x1+x2+x3+x4)-x5, x5-(x1+x2+x3+x4), (x1+x2+x3+x4)*x5, (x1+x2+x3+x4)/x5, x5/(x1+x2+x3+x4), (x1*x2*x3*x4)+x5, (x1*x2*x3*x4)-x5, x5-(x1*x2*x3*x4), (x1*x2*x3*x4)/x5, x5/(x1*x2*x3*x4), # #22 with symmetry group Sym(3) x <(4,5)> of order 12: (x4+x5)-(x1+x2+x3), (x1+x2+x3)-(x4+x5), (x1+x2+x3)*(x4+x5), (x4+x5)/(x1+x2+x3), (x1+x2+x3)/(x4+x5), (x1+x2+x3)+(x4*x5), (x4*x5)-(x1+x2+x3), (x1+x2+x3)-(x4*x5), (x1+x2+x3)*(x4*x5), (x4*x5)/(x1+x2+x3), (x1+x2+x3)/(x4*x5), (x4+x5)+(x1*x2*x3), (x4+x5)-(x1*x2*x3), (x1*x2*x3)-(x4+x5), (x4+x5)*(x1*x2*x3), (x1*x2*x3)/(x4+x5), (x4+x5)/(x1*x2*x3), (x4*x5)+(x1*x2*x3), (x1*x2*x3)-(x4*x5), (x4*x5)-(x1*x2*x3), (x4*x5)/(x1*x2*x3), (x1*x2*x3)/(x4*x5), # #12 with dihedral symmetry group of order 8 (<(1 2),(3 4), (1 3)(2 4)>): x5+(x1+x2)*(x3+x4), x5+(x1*x2)+(x3*x4), x5-(x1+x2)*(x3+x4), x5-(x1*x2)-(x3*x4), (x1+x2)*(x3+x4)-x5, (x1*x2)+(x3*x4)-x5, ((x1*x2)+(x3*x4))*x5, ((x1+x2)*(x3+x4))*x5, ((x1*x2)+(x3*x4))/x5, ((x1+x2)*(x3+x4))/x5, x5/((x1*x2)+(x3*x4)), x5/((x1+x2)*(x3+x4)), # #46 with symmetry group Sym(3) of order 6: ((x1+x2+x3)-x4)*x5, ((x1+x2+x3)-x4)/x5, x5/((x1+x2+x3)-x4), (x4-(x1+x2+x3))*x5, (x4-(x1+x2+x3))/x5, x5/(x4-(x1+x2+x3)), (x1+x2+x3)*x4+x5, (x1+x2+x3)*x4-x5, x5-(x1+x2+x3)*x4, ((x1+x2+x3)*x4)/x5, x5/((x1+x2+x3)*x4), (x1+x2+x3)/x4+x5, (x1+x2+x3)/x4-x5, x5-(x1+x2+x3)/x4, x4/(x1+x2+x3)+x5, x4/(x1+x2+x3)-x5, x5-x4/(x1+x2+x3), (x1+x2+x3)*(x4-x5), (x1+x2+x3)/(x4-x5), (x4-x5)/(x1+x2+x3), (x1+x2+x3)+(x4/x5), (x1+x2+x3)-(x4/x5), (x4/x5)-(x1+x2+x3), (x4+(x1*x2*x3))*x5, (x4+(x1*x2*x3))/x5, x5/(x4+(x1*x2*x3)), ((x1*x2*x3)-x4)*x5, ((x1*x2*x3)-x4)/x5, x5/((x1*x2*x3)-x4), (x4-(x1*x2*x3))*x5, (x4-(x1*x2*x3))/x5, x5/(x4-(x1*x2*x3)), (x1*x2*x3)/x4+x5, (x1*x2*x3)/x4-x5, x5-(x1*x2*x3)/x4, x4/(x1*x2*x3)+x5, x4/(x1*x2*x3)-x5, x5-x4/(x1*x2*x3), (x1*x2*x3)+(x4-x5), (x4-x5)-(x1*x2*x3), (x4-x5)*(x1*x2*x3), (x4-x5)/(x1*x2*x3), (x1*x2*x3)/(x4-x5), (x1*x2*x3)+(x4/x5), (x1*x2*x3)-(x4/x5), (x4/x5)-(x1*x2*x3), # #102 with symmetry group <(1 2),(3 4)> of order 4: #two mults: (x1*x2)-(x3*x4)+x5, (x1*x2)-(x3*x4)-x5, ((x1*x2)-(x3*x4))*x5, ((x1*x2)-(x3*x4))/x5, x5/((x1*x2)-(x3*x4)), (x1*x2)/(x3*x4)+x5, (x1*x2)/(x3*x4)-x5, x5-(x1*x2)/(x3*x4), (x5+(x1*x2))*(x3*x4), (x5+(x1*x2))/(x3*x4), (x3*x4)/(x5+(x1*x2)), ((x1*x2)-x5)*(x3*x4), ((x1*x2)-x5)/(x3*x4), (x3*x4)/((x1*x2)-x5), (x5-(x1*x2))*(x3*x4), (x5-(x1*x2))/(x3*x4), (x3*x4)/(x5-(x1*x2)), (x1*x2)/x5+(x3*x4), (x1*x2)/x5-(x3*x4), (x3*x4)-(x1*x2)/x5, x5/(x1*x2)+(x3*x4), x5/(x1*x2)-(x3*x4), (x3*x4)-x5/(x1*x2), # #two adds: ((x1+x2)-(x3+x4))*x5, ((x1+x2)-(x3+x4))/x5, x5/((x1+x2)-(x3+x4)), (x1+x2)/(x3+x4)+x5, (x1+x2)/(x3+x4)-x5, x5-(x1+x2)/(x3+x4), (x1+x2)*x5+(x3+x4), (x1+x2)*x5-(x3+x4), (x3+x4)-(x1+x2)*x5, (x1+x2)*x5/(x3+x4), (x3+x4)/((x1+x2)*x5), ((x1+x2)-x5)*(x3+x4), ((x1+x2)-x5)/(x3+x4), (x3+x4)/((x1+x2)-x5), (x5-(x1+x2))*(x3+x4), (x5-(x1+x2))/(x3+x4), (x3+x4)/(x5-(x1+x2)), (x1+x2)/x5+(x3+x4), (x1+x2)/x5-(x3+x4), (x3+x4)-(x1+x2)/x5, x5/(x1+x2)+(x3+x4), x5/(x1+x2)-(x3+x4), (x3+x4)-x5/(x1+x2), # #one mult, one add ((x1+x2)+(x3*x4))-x5, ((x1+x2)+(x3*x4))*x5, x5/((x1+x2)+(x3*x4)), ((x1+x2)+(x3*x4))/x5, (x1+x2)-(x3*x4)-x5, x5-(x1+x2)-(x3*x4), ((x1+x2)-(x3*x4))*x5, ((x1+x2)-(x3*x4))/x5, x5/((x1+x2)-(x3*x4)), ((x1+x2)*(x3*x4))+x5, ((x1+x2)*(x3*x4))-x5, x5-((x1+x2)*(x3*x4)), (x1+x2)*(x3*x4)/x5, x5/((x1+x2)*(x3*x4)), (x1+x2)/(x3*x4)+x5, (x1+x2)/(x3*x4)-x5, x5-(x1+x2)/(x3*x4), # (x1*x2)-(x3+x4)+x5, ((x1*x2)-(x3+x4))*x5, ((x1*x2)-(x3+x4))/x5, x5/((x1*x2)-(x3+x4)), (x1*x2)/(x3+x4)+x5, (x1*x2)/(x3+x4)-x5, x5-(x1*x2)/(x3+x4), # ((x1+x2)-x5)*(x3*x4), ((x1+x2)-x5)/(x3*x4), (x3*x4)/((x1+x2)-x5), (x5-(x1+x2))*(x3*x4), (x5-(x1+x2))/(x3*x4), (x3*x4)/(x5-(x1+x2)), (x1+x2)*x5+(x3*x4), (x1+x2)*x5-(x3*x4), (x3*x4)-(x1+x2)*x5, (x1+x2)*x5/(x3*x4), (x3*x4)/((x1+x2)*x5), (x1+x2)/x5+(x3*x4), (x1+x2)/x5-(x3*x4), (x3*x4)-(x1+x2)/x5, x5/(x1+x2)+(x3*x4), x5/(x1+x2)-(x3*x4), (x3*x4)-x5/(x1+x2), # (x5+(x1*x2))*(x3+x4), (x5+(x1*x2))/(x3+x4), (x3+x4)/(x5+(x1*x2)), ((x1*x2)-x5)*(x3+x4), ((x1*x2)-x5)/(x3+x4), (x3+x4)/((x1*x2)-x5), (x5-(x1*x2))*(x3+x4), (x5-(x1*x2))/(x3+x4), (x3+x4)/(x5-(x1*x2)), (x1*x2)/x5+(x3+x4), (x1*x2)/x5-(x3+x4), (x3+x4)-(x1*x2)/x5, x5/(x1*x2)+(x3+x4), x5/(x1*x2)-(x3+x4), (x3+x4)-x5/(x1*x2), # #Five more with symmetry group <(12)(34), (13)(24)> of order 4 (x1-x2)*(x3-x4)+x5, (x1-x2)*(x3-x4)-x5, (x1-x2)*(x3-x4)*x5, (x1-x2)*(x3-x4)/x5, x5/((x1-x2)*(x3-x4)), # #216 with symmetry group <(12)> of order 2: (all use x1*x2 or x1+x2) # #x1*x2 is added to... (x3+(x1*x2))*x4+x5, (x3+(x1*x2))*x4-x5, x5-(x3+(x1*x2))*x4, (x3+(x1*x2))*x4/x5, (x3+(x1*x2))/x4+x5, (x3+(x1*x2))/x4-x5, x5-(x3+(x1*x2))/x4, x4/(x3+(x1*x2))+x5, x4/(x3+(x1*x2))-x5, x5-x4/(x3+(x1*x2)), x4/(x3+(x1*x2))/x5, (x3+(x1*x2))+x4/x5, (x3+(x1*x2))-x4/x5, x4/x5-(x3+(x1*x2)), (x3+(x1*x2))*(x4-x5), (x3+(x1*x2))/(x4-x5), (x4-x5)/(x3+(x1*x2)), ((x1*x2)+x3-x4)/x5, ((x1*x2)+x3-x4)*x5, x5/((x1*x2)+x3-x4), (x1*x2)+x3/x4-x5, ((x1*x2)+x3/x4)*x5, ((x1*x2)+x3/x4)/x5, x5/((x1*x2)+x3/x4), (x1*x2)+(x3-x4)*x5, (x1*x2)+(x3-x4)/x5, (x1*x2)+x5/(x3-x4), #x1*x2 is subtracted from... (x3-(x1*x2))*x4+x5, (x3-(x1*x2))*x4-x5, (x3-(x1*x2))*x4/x5, (x3-(x1*x2))/x4+x5, (x3-(x1*x2))/x4-x5, x4/(x3-(x1*x2))/x5, x4/(x3-(x1*x2))+x5, x4/(x3-(x1*x2))-x5, x5-x4/(x3-(x1*x2)), (x3-(x1*x2))*(x4-x5), (x3-(x1*x2))/(x4-x5), (x4-x5)/(x3-(x1*x2)), (x3-(x1*x2))-x4/x5, (x3-x4-(x1*x2))*x5, (x3-x4-(x1*x2))/x5, x5/(x3-x4-(x1*x2)), (x3/x4-(x1*x2))*x5, (x3/x4-(x1*x2))/x5, x5/(x3/x4-(x1*x2)), (x3-x4)*x5-(x1*x2), (x3-x4)/x5-(x1*x2), x4/x5+x3-(x1*x2), x5/(x3-x4)-(x1*x2), #x1*x2 minus... ((x1*x2)-x3)*x4+x5, ((x1*x2)-x3)*x4-x5, ((x1*x2)-x3)*x4/x5, ((x1*x2)-x3)/x4+x5, ((x1*x2)-x3)/x4-x5, x4/((x1*x2)-x3)-x5, x4/((x1*x2)-x3)/x5, ((x1*x2)-x3)-(x4/x5), ((x1*x2)-x3/x4)*x5, ((x1*x2)-x3/x4)/x5, x5/((x1*x2)-x3/x4), #x1*x2 multiplies... (x1*x2)*(x3-x4)+x5, (x1*x2)*(x3-x4)-x5, (x1*x2)*(x3-x4)/x5, (x1*x2)*(x3/x4+x5), (x1*x2)*(x3/x4-x5), (x1*x2)*(x5-x3/x4), #x1*x2 over... ((x1*x2)/x3+x4)*x5, ((x1*x2)/x3+x4)/x5, ((x1*x2)/x3-x4)*x5, ((x1*x2)/x3-x4)/x5, (x4-(x1*x2)/x3)*x5, (x4-(x1*x2)/x3)/x5, x5/((x1*x2)/x3+x4), x5/((x1*x2)/x3-x4), x5/(x4-(x1*x2)/x3), (x1*x2)/x3+x4/x5, (x1*x2)/x3-(x4/x5), x4/x5-(x1*x2)/x3, (x1*x2)/x3+(x4-x5), (x4-x5)-(x1*x2)/x3, (x1*x2)/(x3-x4)+x5, (x1*x2)/(x3-x4)-x5, (x1*x2)/(x3-x4)/x5, (x1*x2)/(x3/x4+x5), (x1*x2)/(x3/x4-x5), (x1*x2)/(x5-x3/x4), #x1*x2 is under... (x3/(x1*x2)+x4)*x5, (x3/(x1*x2)+x4)/x5, x5/(x3/(x1*x2)+x4), (x3/(x1*x2)-x4)*x5, (x3/(x1*x2)-x4)/x5, x5/(x3/(x1*x2)-x4), (x4-x3/(x1*x2))*x5, (x4-x3/(x1*x2))/x5, x5/(x4-x3/(x1*x2)), x3/(x1*x2)+x4/x5, x3/(x1*x2)-x4/x5, x4/x5-x3/(x1*x2), x3/(x1*x2)+(x4-x5), (x4-x5)-x3/(x1*x2), (x3-x4)/(x1*x2)+x5, (x3-x4)/(x1*x2)-x5, x3*(x4-x5)/(x1*x2), x3/(x4-x5)/(x1*x2), (x3+x4/x5)/(x1*x2), (x3-x4/x5)/(x1*x2), (x4/x5-x3)/(x1*x2), # ================== now the x1+x2 stuff ======= Not yet prettified! x5/(x3-(x1+x2))/x4, (x3-(x1+x2))*x4/x5, (x1+x2)*x5/(x3-x4), x3/((x1+x2)-x5)/x4, ((x1+x2)-x4)*x5/x3, (x5-(x1+x2))*(x3-x4), (x3-x4)/(x5-(x1+x2)), (x1+x2)*(x3-x4)*x5, (x1+x2)/(x3-x5)/x4, (x1+x2)*(x4-x5)/x3, x3/(x1+x2)/(x4-x5), (x3-x4)/(x1+x2)/x5, (x5-(x1+x2))/(x3-x4), (x3-x5)*x4/(x1+x2), x3/((x1+x2)/x4+x5), (x1+x2)+x3*(x4-x5), x3+(x4-(x1+x2))/x5, x4*(x3-x5)-(x1+x2), (x4-(x1+x2)/x3)/x5, ((x1+x2)/x3+x4)/x5, x5/(x4-(x1+x2)/x3), (x3-x5)+(x1+x2)*x4, (x3-x5)-(x1+x2)*x4, (x4-(x1+x2)/x5)*x3, (x3-(x1+x2))/x5-x4, ((x1+x2)/x3+x5)*x4, ((x1+x2)-x5)/x4+x3, (x4+(x1+x2)*x5)*x3, (x3-(x1+x2)*x4)*x5, x4/((x1+x2)/x3-x5), (x1+x2)/(x4/x3+x5), (x3-x4/x5)/(x1+x2), ((x1+x2)/x3-x4)/x5, (x1+x2)*(x4/x3+x5), ((x1+x2)*x3-x5)*x4, x4/(x3+(x1+x2)*x5), ((x1+x2)/x5-x4)*x3, (x3+(x1+x2)*x5)/x4, (x4/x5+x3)/(x1+x2), ((x1+x2)-x3)/x5-x4, x5/(x4-(x1+x2)*x3), ((x1+x2)*x4-x3)/x5, x3/((x1+x2)*x5-x4), (x1+x2)*(x5/x4-x3), (x1+x2)/(x4-x3/x5), (x5-(x1+x2)*x3)/x4, (x1+x2)/(x4/x3-x5), (x5/x3-x4)/(x1+x2), (x1+x2)*(x4-x3/x5), ((x1+x2)-x4/x3)*x5, x4/(x5/x3+(x1+x2)), ((x1+x2)-x3)*x4-x5, x5+(x3-(x1+x2))*x4, (x4-x3)/x5+(x1+x2), x4/((x1+x2)-x5/x3), (x3/x4+(x1+x2))/x5, (x4/x5-(x1+x2))/x3, (x5/x4+(x1+x2))*x3, (x3-(x1+x2))*x4-x5, x3-x5-(x1+x2)/x4, x4/(x3/x5-(x1+x2)), x5+((x1+x2)-x3)*x4, x3-(x1+x2)*x5/x4, (x5/x3-(x1+x2))*x4, (x1+x2)*x3/x5-x4, (x1+x2)*x3/x4+x5, (x3-x5)+(x1+x2)/x4, ((x1+x2)-x4/x5)/x3, (x4-x5)/x3-(x1+x2), x3/x5-(x1+x2)*x4, x4/x5-(x1+x2)/x3, (x1+x2)*x4-x5/x3, x3/x5+(x1+x2)*x4, x4-x5/x3-(x1+x2), (x3-x5)/(x1+x2)-x4, (x3/(x1+x2)+x5)/x4, (x1+x2)/(x4-x5)+x3, x4/x5+x3-(x1+x2), x3/(x4/(x1+x2)+x5), (x1+x2)/x4+x3/x5, (x5/(x1+x2)+x3)*x4, (x1+x2)-(x4/x5+x3), (x4-x3/(x1+x2))*x5, x3/(x5-x4/(x1+x2)), (x1+x2)/x4-x3/x5, (x3-x4)/(x1+x2)+x5, x5/(x4/(x1+x2)-x3), (x5-x3/(x1+x2))/x4, (x5/(x1+x2)-x3)*x4, (x1+x2)+x5/x3-x4, (x1+x2)/(x3-x5)-x4, (x4/(x1+x2)-x3)/x5, x5+(x1+x2)*(x3-x4), (x1+x2)*(x3-x4)-x5, x3/x5+x4/(x1+x2), # x4/(x1+x2)-x5/x3, x5/x3-x4/(x1+x2), x3/x5/(x1+x2)-x4, x3/x4/(x1+x2)+x5, x4-x3/x5/(x1+x2), x4/(x3-(x1+x2))+x5, x3/(x5-(x1+x2))-x4, x3/((x1+x2)-x4)-x5, x4-x3/(x5-(x1+x2)), x5/(x3-x4)+(x1+x2), x3/(x1+x2)+(x4-x5), (x4-x5)-x3/(x1+x2), x5/(x3-x4)-(x1+x2), # #Ten more with symmetry group <(12)(34)> also of order 2: (x1-x2)/(x3-x4)+x5, (x1-x2)/(x3-x4)-x5, (x1-x2)/(x3-x4)*x5, (x1-x2)/(x3-x4)/x5, (x1/x3+x2/x4)+x5, (x1/x3+x2/x4)-x5, x5-(x1/x3+x2/x4), (x1/x3+x2/x4)*x5, (x1/x3+x2/x4)/x5, x5/(x1/x3+x2/x4), # #and 75 with symmetry group of order 1 (Not yet sorted, sorry) ((x1-x2)*x3+x4)-x5, ((x1-x2)*x3+x4)*x5, ((x1-x2)*x3-x4)*x5, ((x2 - x1)/x5 + x4)*x3, ((x1 - x2)/x5 - x4)*x3, ((x4 - x2)*x1 +x3)/x5, (x3 - x4)*(x2/x5 + x1), (x4 - x5)*(x1 - x2/x3), x4/(x3 + x2*(x5 - x1)), x1/((x3 - x2)*x5 - x4), (x4*(x5 - x1) - x3)/x2, x5/(x3/x4 + x2 - x1), x5 +(x4 - x1)/x3 - x2, ((x3 - x5) - x2/x4)*x1, x3 + (x2 - x1)*x4/x5, (x3 - x1)*x5/x2 - x4, ((x1 - x4) + x5/x3)*x2, x2*(x3 - x4) - x5/x1, (x5 - x4/x3)/x2 + x1, x3/x4 + (x2 - x1)*x5, (x1 + x2/x4)*x5 + x3, x1 + (x3/x2 - x4)*x5, (x4/x1 + x3) - x2, (x3 - x4/x1)*x5 -x2, x2 + x3*(x4 - x1/x5), x4 - (x1/x2 + x3)*x5, (x3/(x2 - x4) - x5)/x1, x4*(x1/x3 - x5) - x2, ( x1/(x3 - x5) - x4)*x2, (x5 + x4/(x1 - x2))*x3, (x3/x4 - x5)*x2/x1, x2/(x3 - x5/x1)/x4, (x5/x4 + x1)*x3/x2, ((x4 - x2)/x5 + x3)/x1, x4/(x2/x5 + x3)/x1, (x1 - x4/x2)*x5/x3, (x3 - x2)/(x5 - x1/x4), ((x2 - x5)/x1 - x4)/x3, (x2 - x1/x3)/(x4 - x5), x2/((x4 - x3)/x1 + x5), x5/((x2 - x1)/x4 - x3), (x3 - x2)/(x1/x5 + x4), (x4/x1 + x3)/(x5 - x2), (x3/x5 - x1/x2)*x4, ((x2 - x1) - x5/x4)/x3, (x5/x4 + (x1 - x2))/x3, x5/((x4 - x2) - x3/x1), (x3/x4 + x1)/x5 + x2, (x3/x5 - x1)/x2 + x4, x4 - (x1 + x2/x5)/x3, (x5/x2 - x1)/x4 - x3, (x1/(x4 - x5) + x2)/x3, x1/(x4 - x2/(x3 - x5)), x1/x2 + (x5 - x4)/x3, (x1 + x2/x5)/x3 - x4, (x5 - x1/x2)/x3 - x4, x1/(-x4 + x2/(x3-x5)), x3/x1 - x5/x4 + x2, x5/x1 - x3/x2 - x4, (x2- x1)/x5 - x3/x4, x3/(x2 - x4) - x1/x5, x3/x4 - x1/(x5 - x2), x4/x5/(x1 - x3) + x2, x1/x2/(x5 - x4) - x3, x1/(x2/x3 - x5)/x4, (x3/x1 - x5/x2)/x4, x1/(x4/x2 - x3/x5), x3 + x2/(x4/x1 + x5), x3 - x5/(x1/x2 + x4), x3/(x4/x2 + x5) - x1, x2/(x1/x4 - x3) + x5, x2/(x4/x5 - x3) - x1, x3/(x2 - x1/x4) + x5, x3/(x4 - x5/x1) - x2, (x5-x4)-x2/(x3-x1) ]: #Here are the routines which generate the longer list of permutated values. with(combinat):P:=permute(5): H:=[seq({seq(subs({seq(x||i=x||(P[j][i]),i=1..5)},G[k]),j=1..120)},k=1..500)]: K:=factor(H): # That part is slow! But it's necessary to avoid duplications in L: L:={seq(op(K[i]),i=1..500)}: # ...though if I worked at it a little I could probably limit the # factoring just to a few formulas for which it's really necessary... LD:={op(denom(L))}: lprint(`Copied`,nops(G),` formulas; expected 500`); lprint(`Computed`,nops(L),` values; expected 27142`); lprint(`Computed`,nops(LD),` denominators; expected 1001`); #There is a separate file at www.math.niu.edu/~rusin/uses-math/games/krypto #containing these denominators (and other information) #Summary: 10 types of symmetry among the 500 formulas and 27142 values: # # 2 with orbits of size 1 (Sym(5)) -- 2 formulas # 10 with orbits of size 5 (Sym(4)) -- 50 formulas # 22 with orbits of size 10 (Sym(3)xZ2) -- 220 formulas # 12 with orbits of size 15 (Dih(8)) -- 180 formulas # 46 with orbits of size 20 (Sym(3)) -- 920 formulas # 102 with orbits of size 30 (Z2^2) -- 3060 formulas # 5 with orbits of size 30 (diag(Z2^2)) -- 150 formulas # 216 with orbits of size 60 (Sym(2)) -- 12960 formulas # 10 with orbits of size 60 (diag(Z2)) -- 600 formulas # 75 with orbits of size 120 ( 1 ) -- 9000 formulas #Are we really sure these values are distinct? YES! They give #distinct values for some sets of inputs. For example, # samp:=[13^2,17^2,19^2,29^2,43^2]: # L0:=subs({seq(x||i=samp[i],i=1..5)},L): samp, nops(L0); #shows that all 27142 values are different. #I tried varying these numbers and got other, smaller good sets, #e.g. [13^2,nextprime(240),nextprime(332),nextprime(380),nextprime(460)]: # [169, 241, 337, 383, 461], 0 #and a random search yielded # [127, 174, 223, 262, 293], 0 #Here -- you can keep playing looking for more small "witnesses" to the total #Just type search(): to Maple, and wait... kernelopts(printbytes=false): randomize(): r:=proc() floor(rand()/10^12*220)+1:end: search:=proc() local samp,L0,i: while true do samp:=sort([r(),r(),r(),r(),r()]): if not member(0, subs({seq(x||i=samp[i],i=1..5)},LD)) then L0:=subs({seq(x||i=samp[i],i=1..5)},L): if nops(L0)>27140 then print(samp,27142-nops(L0)) fi: fi:od: end: #That random-search combination of values for the x_i gives 27142 different #values, all in [ -882992138, 882992138], with #the 11973rd smallest = -4927299/127, next=102114/293 ; includes #1559 negative and 2153 positive integers, inc. -39, -31, 31, 39, 47, ... #Others are fractions with denominators as large as 2978674332 . #Other "small" sets recently found by random searches: #[106, 173, 202, 228, 239],[116, 135, 156, 231, 238],[118, 145, 199, 222, 237], #[45, 74, 173, 211, 236],[129, 158, 199, 222, 233],[61, 124, 157, 214, 227] #[55, 131, 193, 202, 218],[92, 143, 167, 179, 188], #This last prompted an exhaustive search for lower top-two terms, with #the find that this hand works: # [92, 143, 167, 177, 182] <-- current winner! #There are no smaller triples retaining these bottom 2 #s #There are no other triples using the same top three. #(Hm, there are about 1.5 billion or so combinations with all terms < 182... #But it seems like many of them cause division-by-zero errors.) #When is an exhaustive search OK? Can check all combinations with terms #under 68 with 10million cases; under 106 with 100million; under 167 #with 1billion; ... #Also e.g. [47, 55, 126, 166, 186] gives just a single coincidence (27141 vals) #Smaller sets, e.g. [74, 105, 121, 125, 127] fall somewhat further short #of the total (25 short here). #Open questions: How do these formulas relate to the actual Krypto #games, where the five inputs and the target are drawn together from a #deck of 56 cards: 3 each of number 1-6, 4 each of 7-10, 2 each of 11-17, #and one each of 18-25. #Questions: #What is the largest number of possible values from a given hand of 5? average? #What is the probability that a 5+1 hand is unsolvable? "~1/3000" is in rules #What about hands which have a unique solution? average number of solutions? #... #Here is the routine to check possibilities: play:=proc(a,b,c,d,e,f): local samp,l,dd,nn,i: samp:=[a,b,c,d,e]: for l in L do dd:=denom(l):nn:=numer(l): if subs({seq(x||i=samp[i],i=1..5)},dd)*f=subs({seq(x||i=samp[i],i=1..5)},nn) then lprint(l) fi: od: end: