Back
Close

Recueil d'exercices pour apprendre Python au lycée

M_C
26.9K views

Incontournable factorielle (version recursive)

La factorielle d'un nombre n (noté n!) est définie par n!=1×2×3××n et par convention 0!=1. On a déjà crée un programme avec un boucle forpour calculer la factorielle d'un nombre. Cette fois-ci, nous allons créer la version recursive.

En remarquant que factorielle(n)=n×factorielle(n1), créer une version recursive de la fonction factorielle.

Entrée : Un entier naturel n.

Sortie : La fonction factorielle programmée de manière récursive qui revoie (avec return) n!.

Créer une fonction factorielle
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Application : Calcul des coefficients binomiaux

En probabilité, lorsqu'on étudie la loi binomiale, apparaissent naturellement ce que l'on appelle les coefficients binomiaux. Ils apparaissent aussi dans d'autres parties des mathématiques. On pourra trouver plus d'information sur Wikipédia.

Nous allons nous intéresser ici à leur calcul en utilisant la formule faisant intervenir les factorielles : On a pour des entiers naturels n et k :

  • (nk)=n!k!(nk)! si 0kn
  • (nk)=0 si n<k

Tout d'abord, copiez-collez votre programme factorielle précédent dans la fenêtre ci-dessous. Créez ensuite un programme binom qui calcule le coefficient binomial (nk).

Entrée : Deux entiers naturels n et k dans cet ordre.

Sortie : Une fonction binom qui renvoie (avec return) la valeur de (nk) en utilisant les formules données.

Créer une fonction binom
#Copiez-collez ici votre fonction factorielle
#Créez ci-dessous votre fonction binom(n,k)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Application : Approximation de e

En terminale, on étudie la fonction exponentielle. Elle est très liée à un nombre particulier appelée constante de Néper et notée e. On pourra trouver plus d'information sur Wikipédia.

Une des façons de calculer e consiste à utiliser la formule pour n assez grand :

e1+11!+12!+13!++1n!

Créez un programme approx_e qui prend en entrée un entier n et affiche l'approximation de e calculée avec la formule précédente. Pour vous entrainer, essayez de faire une version recursive de approx_e (c'est facile puisque c'est un calcul de somme).

N'oubliez pas de copier-coller votre fonction factorielle.

Entrée : Un entier n.

Sortie : Une fonction approx_e qui renvoie (avec return) l'approximation de e calculée avec la formule précédente.

Créer une fonction approx_e
#Copiez collez votre fonction factorielle ici
#Créez ci dessous votre fonction approx_e(n)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Application : Approximation de π

Tant qu'on y est, approximons π ! On peut trouver énormément de formules pour approximer π. On a déjà vu une façon de faire dans les premiers exercices en calculant le périmètre d'un polygone régulier. On peut aller voir Wikipédia pour une belle liste de formules permettant d'approximer π .

Vue la précision de python, nous n'avons pas besoin de formule réellement efficace (on ne vise pas le milliard de décimales), nous allons donc utiliser une formule pas trop compliquée :

π(2+22×(1!)23!+23×(2!)25!+24×(3!)27!++2n+1×(n!)2(2n+1)!)

Créez un programme approx_pi qui prend en entrée un entier n et affiche l'approximation de π calculée avec la formule précédente. Pour vous entrainer, essayez de faire une version recursive de approx_pi (c'est facile puisque c'est un calcul de somme).

N'oubliez pas de copier-coller votre fonction factorielle.

Entrée : Un entier n.

Sortie : Une fonction approx_pi qui renvoie (avec return) l'approximation de π calculée avec la formule précédente.

Créer une fonction approx_pi
#Copier coller votre fonction factorielle ici
#Créer ci-dessous votre fonction approx_pi(n)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants