• Aucun résultat trouvé

Exercice 1 : Coefficients binomiaux

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1 : Coefficients binomiaux"

Copied!
2
0
0

Texte intégral

(1)

TD2 - Algorithmique

Exercice 1 : Coefficients binomiaux

On souhaite écrire une fonction permettant de calculer les coefficients binomiaux en s’ap- puyant simplement sur la formule de Pascal.

1. Écrire une fonction somme_Pascal(L) qui prend en entrée une liste (non vide) d’entiers L et qui renvoie la liste obtenue en additionnant deux termes consécutifs de L selon le modèle suivant :

PourL=[a0, a1, a2, ..., an]la fonction devra renvoyer [a0, a0+a1, a1+a2, ..., an−1+an, an].

>>> somme_Pascal ( [ 2 , 5 ] ) [ 2 , 7 , 5 ]

>>> somme_Pascal ( [ 6 ] ) [ 6 , 6 ]

>>> somme_Pascal ( [ 5 , 8 , 1 , 6 , 4 ] ) [ 5 , 1 3 , 9 , 7 , 1 0 , 4 ]

2. En déduire une fonction coef_binome(k, n)qui renvoie le nombre de combinaisons

n

k

.

>>> coef_binome ( 3 , 5 ) 10

>>> coef_binome ( 3 3 , 5 5 ) 1 3 0 0 8 5 3 6 2 5 6 6 0 2 2 5

Exercice 2 : Liste des diviseurs

Dans le cours, on dispose de la propriété suivante :

Sik ≤k0 sont deux diviseurs associés d’un entier naturel non nula alors k2 ≤a.

Ainsi, pour déterminer l’ensemble des diviseurs positifs DN(a) d’un nombre a, on teste les entiers les uns après les autres en commençant par 1, on note chaque diviseur obtenu avec son diviseur associé et on s’arrête lorsque le carré du nombre testé dépasse a. Voici deux exemples d’exécutions de cet algorithme.

Pour n = 12 :

12 = 1 612, 1 divise 12 et son diviseur associé est 12 22 = 4 612, 2 divise 12 et son diviseur associé est 6 32 = 9 612, 3 divise 12 et son diviseur associé est 4 42 = 16>12, c’est fini.

DN(12) ={1,12,2,6,3,4}

(2)

Pour n = 25 :

12 = 1625, 1 divise 25 et son diviseur associé est 25 22 = 4625, 2 ne divise pas 25

32 = 9625, 3 ne divise pas 25 42 = 16625, 4 ne divise pas 25

52 = 25625, 5 divise 25 et son diviseur associé est 5 62 = 36 >25, c’est fini.

DN(25) ={1,5,25}

On rappelle que le quotient de la division euclidienneaparbs’obtient para//bet le reste par a%b ainsi pour tester si un nombre k divise un nombre n, on utilisera simplement la condition n%k == 0.

Écrire une fonctionensemble_diviseurs(n)qui prend un entier n en paramètre et renvoie une liste qui contient les diviseurs de n.

>>> e n s e m b l e _ d i v i s e u r s ( 2 5 ) [ 1 , 2 5 , 5 ]

>>> e n s e m b l e _ d i v i s e u r s ( 1 2 ) [ 1 , 1 2 , 2 , 6 , 3 , 4 ]

Exercice 3 : Division euclidienne, première version

On souhaite effectuer la division euclidienne d’un entier naturel apar un entier naturel non nul b. Un algorithme simple consiste à retirer b à a tant que le résultat reste plus grand que b.

Le nombre de soustractions effectuées donne le quotient et le dernier résultat d’une soustraction donne le reste.

Écrire une fonction div_euclidienne1(a, b) qui met en œvre cet algorithme.

>>> d i v _ e u c l i d i e n n e 1 ( 2 5 , 4 ) ( 6 , 1 )

>>> d i v _ e u c l i d i e n n e 1 ( 2 4 8 , 4 3 ) ( 5 , 3 3 )

Exercice 4 : Division euclidienne, deuxième version

Avec la fonction obtenu précédemment tester la division d’un nombre de 9, 10 puis 11 chiffres (le dividende) par un diviseur à deux chiffres. Demander ensuite à Python de faire pareil :

>>> d i v _ e u c l i d i e n n e 1 ( 2 4 8 5 5 5 5 5 5 5 , 4 3 ) ( 5 7 8 0 3 6 1 7 , 2 4 )

>>> 2 4 8 5 5 5 5 5 5 5 // 4 3 , 2 4 8 5 5 5 5 5 5 5 % 43 ( 5 7 8 0 3 6 1 7 , 2 4 )

>>> d i v _ e u c l i d i e n n e 1 ( 2 4 8 5 5 5 5 5 5 5 5 , 4 3 ) ( 5 7 8 0 3 6 1 7 5 , 3 0 )

>>> 2 4 8 5 5 5 5 5 5 5 5 // 4 3 , 2 4 8 5 5 5 5 5 5 5 5 % 43 ( 5 7 8 0 3 6 1 7 5 , 3 0 )

Que constatez-vous ?

En vous inspirant de la méthode de division « à la main », proposer un algorithme efficace.

Références

Documents relatifs

En chaque nœud : on stocke le degr´ e et pointeurs vers le parent, premier fils, fr` ere

Trois locataires laissent, en sortant, la clé numérotée de leur appartement à la gardienne de l’immeuble. Celle-ci s’amuse à enlever les numéros et rend au hasard les clefs

En faisant la demi-somme (resp. la demi-différence) des deux égalité ci-dessus, on sélectionne les termes d’indices

Pour calculer ce produit, insérons sous forme multiplicative les nombres pairs nécessaires pour avoir

• Coefficients binomiaux : définition, relations de symétrie, coefficients binomiaux aux extrémités d’une ligne du triangle de Pascal, relations de Pas- cal, triangle de Pascal..

les lois cylindriques de dimension finie sont encore binomiales négatives. Nous définissons donc la loi binomiale négative de paranètres v et r

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..

L’accès aux archives de la revue « Nouvelles annales de mathématiques » implique l’accord avec les conditions générales d’utilisation ( http://www.numdam.org/conditions )..