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
| def condict_reste(dn,dico_2,dico_2_i2v,dico_2_v2i,dico_2_p,maxp,r,lp):
for pl in lp:
pv=dico_2_p[pl]
vp=dico_2_v2i[pv]
if r<vp and maxp!=pl:
None
elif r<vp and maxp==pl:
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_dict(r,dn,dico_2,dico_2_i2v,dico_2_v2i,str(r))
elif r>=vp and maxp!=pl:
n=r/vp
n2=n*vp
nr=r%vp
if n==1:
vn='v'+str(pv)
else:
if n<=vp<dico_2_v2i[dico_2_p[maxp]]:
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_dict(n,dn,dico_2,dico_2_i2v,dico_2_v2i,str(n))
elif n>vp>=dico_2_v2i[dico_2_p[maxp]]:
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_reste(dn,dico_2,dico_2_i2v,dico_2_v2i,dico_2_p,maxp,n,lp)
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_dict(n2,dn,dico_2,dico_2_i2v,dico_2_v2i,vn+'*v'+str(pv))
if nr!=0:
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_reste(dn,dico_2,dico_2_i2v,dico_2_v2i,dico_2_p,maxp,nr,lp)
dn, dico_2, dico_2_i2v, dico_2_v2i, vn=condict_dict(r,dn,dico_2,dico_2_i2v,dico_2_v2i,vn+'+'+tr)
break
return dn, dico_2, dico_2_i2v, dico_2_v2i, vn |
Partager