Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Tugas Kecil Strategi Algoritma
- #Lucky Jonathan Chandra - 13517136
- #Inisialisasi variabel penampung jawaban
- solutions = []
- solution_val = 0
- def permute(params,results):
- #fungsi ini menggenerasi semua kemungkinan permutasi dari 4 bilangan masukan
- temp = []
- temp_res = []
- for i in range(4):
- for j in range(4):
- if(j!=i):
- for k in range(4):
- if(k!=j and k!=i):
- for l in range(4):
- if(l!=k and l!=j and l!=i):
- temp.append(params[i])
- temp.append(params[j])
- temp.append(params[k])
- temp.append(params[l])
- temp_res.append(temp)
- temp = []
- #Pencarian dan penghilangan hasil permutasi yang duplikat
- for res in temp_res:
- if res not in results:
- results.append(res)
- def solve(var_list):
- #fungsi yang menggenerasi semua kemungkinan formasi kurung dan operator dalam urutan 4 angka yang ditentukan
- global solution_val
- op1 = '+'
- op2 = '-'
- op3 = '*'
- op4 = '/'
- for kurung in range(1,5): #setiap kemungkinan formasi kurung
- for m in range(1,5): #setiap kemungkinan operator 1
- for n in range(1,5): #setiap kemungkinan operator 2
- for o in range(1,5): #setiap kemungkinan operator 3
- temp_solution = "" #Dalam format a+b+c+d :
- if(kurung == 2 or kurung == 3):
- temp_solution = temp_solution+'('
- elif(kurung == 1):
- temp_solution = temp_solution+"(("
- temp_solution = temp_solution + str(var_list[0])+eval("op"+str(m)) #Dalam format a+b+c+d : a+
- if(kurung == 2):
- temp_solution = temp_solution+'('
- elif(kurung == 4):
- temp_solution = temp_solution+"(("
- temp_solution = temp_solution + str(var_list[1]) #Dalam format a+b+c+d : b
- if(kurung == 1 or kurung == 3):
- temp_solution = temp_solution+')'
- temp_solution = temp_solution + eval("op"+str(n)) #Dalam format a+b+c+d : +
- if(kurung == 3):
- temp_solution = temp_solution+'('
- temp_solution = temp_solution+str(var_list[2]) #Dalam format a+b+c+d : c
- if(kurung == 1 or kurung == 4):
- temp_solution = temp_solution+')'
- elif(kurung == 2):
- temp_solution = temp_solution+"))"
- temp_solution = temp_solution+eval("op"+str(o))+str(var_list[3]) #Dalam format a+b+c+d : +d
- if(kurung == 3 or kurung == 4):
- temp_solution = temp_solution+')'
- error = False
- try: eval(temp_solution)
- except ZeroDivisionError: error = True #mengantisipasi error pembagian dengan 0
- if(not error):
- if(eval(temp_solution) == 24):
- solutions.append(temp_solution)
- solution_val = solution_val + 1
- #Pemrosesan input
- print("24 Solver")
- param = input("Masukan 4 angka yang dipisah dengan spasi : ")
- var = param.split(" ")
- #Generasi semua kemungkinan urutan 4 angka
- vars_list = []
- permute(var,vars_list)
- for var_list in vars_list:
- solve(var_list)
- #Pencetakan jawaban
- if(solution_val != 0) :
- print("Daftar Solusi : ")
- for solution in solutions :
- print(solution)
- print("Ditemukan "+str(solution_val)+" buah solusi")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement