Compréhension de code/fonction

Signaler
Messages postés
2
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
8 janvier 2020
-
 trifou -
Bonjour,

je dois documenter la fonction suivante et donc comprendre ce que la fonction rend or je ne comprend pas du tout :
def foo(p,k):
    num =1
    den = 1
    i = 1
    while i <= k:
        num =num * (p -i + 1)
        den =den * i
        i = i + 1
    return num // den


merci d'avance pour votre aide

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

Bonsoir,

Je suis comme toi, et en faisant de simples essais et print dans la fonction, le résultat saute aux yeux.

Allez un indice, le résultat retourne un nombre, qui en en math se calcule en utilisant des factorielles.
inest01
Messages postés
2
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
8 janvier 2020

Je ne vois pas le lien avec les factorielles et je ne comprend pas ce que signifie le resultat retourne un nombre
> inest01
Messages postés
2
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
8 janvier 2020

foo(p, k) 
=> p! ÷ ((p-k)! × k!)

Tu sais, tu peux modifier cette fonction pour comprendre ce qu'il se passe dedans, et faire des tests avec.

def foo(p,k):
    num =1
    den = 1
    i = 1
    print('p :{}, k :{}'.format(p, k))
    while i <= k:
        num =num * (p -i + 1)
        den =den * i
        i = i + 1
        print('i :{}, num :{}, den : {}'.format(i, num, den))
    return num // den


print(foo(10, 2))
print('-' * 20)
print(foo(10, 3))
print('-' * 20)
print(foo(10, 4))
print('-' * 20)
print(foo(10, 5))