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
| ## Created: 2005.11.05
## Version: 0.0.0
## Build: 0.1
## Updated: 2005.11.05
## Auteur: Guillaume Duriaud
def Cnp(n,p, l=None, res=None):
""" Created: 2005.11.05 - Updated:
Calcul du Cnp - ne pas renseigne l et res lors de l'appel """
if l is None: l=[]
if res is None: res=[]
if p==0:
res.append(l)
return
if n==0: return
l1=list(l)
l1.append(n)
Cnp(n-1, p-1, l1, res)
Cnp(n-1, p, l, res)
return res
def Anp(n, p, l=None, res=None):
""" Created: 2005.11.05 - Updated: 2005.11.05
Calcul de l'Anp - ne pas renseigne l et res lors de l'appel """
if l is None: l=[]
if res is None: res=[]
if p==0:
res.append(l)
return
for k in range(1,n+1):
if k not in l:
l1=list(l)
l1.append(k)
Anp(n, p-1, l1,res)
return res |
Partager