Compréhension de code/fonction

Fermé
inest01 Messages postés 2 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 8 janvier 2020 - Modifié le 8 janv. 2020 à 20:30
 trifou - 8 janv. 2020 à 21:44
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.
A voir également:

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.
0
inest01 Messages postés 2 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 8 janvier 2020
8 janv. 2020 à 21:35
Je ne vois pas le lien avec les factorielles et je ne comprend pas ce que signifie le resultat retourne un nombre
0
trifou > inest01 Messages postés 2 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 8 janvier 2020
8 janv. 2020 à 21:44
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))
0