Ecrire une méthode récursive
static int pgcd(int a,int b)
qui calcule le pgcd de deux entiers.
Proposer une méthode récursive et une méthode
itérative.
[corrigé]
Calcul des coefficients binomiaux.
qui calcule le nombre de sous-ensembles de p éléments
dans un ensemble de n.
Proposer une méthode récursive à partir de la relation
de Pascal
binomial(n,p) = binomial(n-1,p-1) + binomial(n-1,p).
Quelle est sa complexité?
Proposer une méthode à partir de la relation
binomial(n,p) = ( n(n-1)...(n-p+1) ) / ( p(p-1)...1 ).
Ecrire une méthode
static int[][] tb_binomial(int n)
qui retourne une table de tous les coefficients binomiaux jusqu'à
n.
Quelle est sa complexité?
[corrigé]
[solution originale d'un
élève]
Ecrire une méthode
static int surj(int n,int p)
qui calcule le nombre de surjections d'un ensemble de n
éléments dans un ensemble de p.
On pourra se servir de la relation
surj(n,p) = p.(surj(n-1,p) + surj(n-1,p-1)).
[corrigé]
Ecrire une procédure qui compose deux permutations données.
Ecrire une procédure qui itère m fois une permutation
sur n éléments.
Comment le faire avec une complexité de O(n log m)?
On pourra se servir des méthodes de
l'exercice 2 du TP1
(voir son corrigé).
[Même exercice que
l'exercice 5 du TP2, voir
son corrigé]