1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
def f((a,b,c), (d, e, f), (m, n, o, p, q), (r, s, t, u, v)):
return a+b+c+m+n+o+p+q
# Creation des listes de valeur ou la somme=1
# ------pour 3 parametres
valeurs_dim3=[]
valeurs_dixieme=[0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
for a in valeurs_dixieme:
for b in valeurs_dixieme:
for c in valeurs_dixieme:
if a+b+c==1:
valeurs_dim3.append((a,b,c))
print "nombre de cas pour 3 parametres",len (valeurs_dim3)
# ------pour 5 parametres
valeurs_dim5=[]
for a in valeurs_dixieme:
for b in valeurs_dixieme:
for c in valeurs_dixieme:
for d in valeurs_dixieme:
for e in valeurs_dixieme:
if a+b+c+d+e==1:
valeurs_dim5.append((a,b,c,d,e))
print "nombre de cas pour 5 parametres",len (valeurs_dim5)
# Creation de la liste en combinant les 3 parametre et 5 parametres
valeurs_total=[]
for p1 in valeurs_dim3:
for p2 in valeurs_dim5:
valeurs_total.append((p1,p2))
print "nombre de cas pour 3+5 parametres",len(valeurs_total)
# Recherche du maxi
max=0
for i,valeur in enumerate(valeurs_total):
val_cal=f(valeur[0],(0.1,0.2,0.3),valeur[1],(0.1,0.2,0.3,0.4,0.5))
if val_cal>max:
max=val_cal
item_max=i
print max,valeurs_total[i]
print "---resultat---"
print "maxi=",max
print "Numero d'element=",item_max
print "parametre pour le max=",valeurs_total[item_max] |
Partager