Com es pot veure no necessita enunciat.
Per resoldre'l utilitzem diferents recursos del llenguatge, destaco els diccionaris, els bucles niuats i les expressions lambda:
from itertools import combinations
suma = { 'operacio': lambda x,y: x+y, 'nom':'suma' }
resta = { 'operacio': lambda x,y: x-y, 'nom':'resta' }
operacions = ( suma, resta )
for op1 in operacions:
for op2 in operacions:
for op3 in operacions:
for op4 in operacions:
r1 = op1['operacio']( 10, 9)
r2 = op2['operacio']( r1, 15)
r3 = op3['operacio']( r2, 7 )
r4 = op4['operacio']( r3, 4 )
if r4 == 19:
print op1['nom'], op2['nom'], op3['nom'], op4['nom']
Resultat:
resta suma suma resta
Cal dir que les itertools ens permeten substituir els bucles niuats per un sol bucle:
http://stackoverflow.com/questions/1280667/in-python-is-there-an-easier-way-to-write-6-nested-for-loops
Cap comentari:
Publica un comentari a l'entrada