1、列出四个数的所有排序序列组合(共有A44=24种组合)。
2、定义一个函数,列出所有运算表达式:(1没括号a*b*c*d;2有括号(a * b) * c * d;3有括号的(a * b * c) * d;4有括号的a * (b * c) * d;5有括号的(a * b) * (c * d);6有括号的((a * b) * c) * d;7有括号的(a * (b * c)) * d。)
3、输入数据计算。
import itertools from random import randint R=[] def Calculate (x,y,z,w):#列出固定排序的数加减乘除以及括号的所有排列组合方式. try: if x+y+z+w==24: print(x,'+',y,'+',z,'+',w,'=24') if x+y+z-w==24: print(x,'+', y,"+", z,'-', w,'=24') if (x+y)*(z+w)==24: print('(',x,'+', y,')','*(', z,'+', w,')','=24') if (x-y)*(z+w)==24: print('(', x, '-', y, ')', '*(', z, '+', w,')','=24') if (x-y)*(z-w)==24: print('(', x, '-', y, ')', '*(', z, '-', w,')','=24') if ((x+y+z)*w==24): print('(',x,'+', y,'+', z,')*', w,'=24') if (x-y-z)*w==24: print('(', x, '-', y, '-', z, ')*', w,'=24') if (x+y-z)*w==24: print('(', x, '+', y, '-', z, ')*', w,'=24') if (x*y*z)/w==24: print('(', x, '*', y, '*', z, ')/', w,'=24') if (x*y)*(z+w)==24: print('(', x, '*', y, ')', '*(', z, '+', w,')','=24') if (x*y)*(z-w)==24: print('(', x, '*', y, ')', '*(', z, '-', w,')','=24') if (x*y)*z-w==24: print('(', x, '*', y, ')', '*', z, '-', w,'=24') if (x*y)*z+w==24: print('(',x,'*', y,')','*', z,'+', w,'=24') if x*y*z*w==24: print(x,'*', y,'*', z,"*", w,'=24') if (x+y)+(z/w)==24: print('(', x, '+', y, ')', '*(', z, '/', w, ')','=24') if (x+y)*(z/w)==24: print('(', x, '+', y, ')', '*(', z, '/', w, ')','=24') if (x*y)+z+w==24: print('(', x, '*', y, ')', '+', z, '+', w,'=24') if (x*y)+z-w==24: print('(', x, '*', y, ')', '+', z, '-', w,'=24') if (x*y)-(z/w)==24: print('(', x, '*', y, ')', '-(', z, '/', w, ')','=24') if (x*y)+(z/w)==24: print('(', x, '*', y, ')', '+(', z, '/', w, ')','=24') if (x*y)-z-w==24: print('(', x, '*', y, ')', '-', z, '-', w,'=24') if (x*y)+(z*w)==24: print('(', x, '*', y, ')', '+(', z, '*', w, ')','=24') if (x*y)-(z*w)==24: print('(', x, '*', y, ')', '-(', z, '*', w, ')','=24') if (x*y)/(z*w)==24: print('(', x, '*', y, ')', '/(', z, '*', w, ')','=24') if (x*y)/(z-w)==24 : print('(', x, '*', y, ')', '/(', z, '-', w, ')','=24') if (x*y)/(z+w)==24: print('(', x, '*', y, ')', '/(', z, '+', w, ')','=24') except Exception as e: print(e) L = [randint(1,14),randint(1,14),randint(1,14),randint(1,14)]#生成四个随机牌 l = list(itertools.permutations(L,4))#将生成的四个随机数排列组合,生成列表 print('随机牌为',L[0],L[1],L[2],L[3]) for i in l: Calculate(i[0],i[1],i[2],i[3])