Définir une fonction calculant le produit de deux nombres suivant la méthode de la multiplication dite égyptienne.
Pour vous aider à mettre au point, vous pouvez tracer les appels à une fonction grâce à trace. Par exemple:trace "multiplication_egyptienne";; The function multiplication_egyptienne is now traced. - : unit = () multiplication_egyptienne 3 4;; multiplication_egyptienne <-- 3 multiplication_egyptienne --> <fun> multiplication_egyptienne* <-- 4 multiplication_egyptienne <-- 1 multiplication_egyptienne --> <fun> multiplication_egyptienne* <-- 8 multiplication_egyptienne <-- 0 multiplication_egyptienne --> <fun> multiplication_egyptienne* <-- 16 multiplication_egyptienne* --> 0 multiplication_egyptienne* --> 8 multiplication_egyptienne* --> 12 - : int = 12
Définir une fonction calculant la puissance entière d'un entier selon le même principe que la multiplication égyptienne.
Définissez une fonction calculant le pgcd de deux nombres entiers.
Définir une fonction calculant le ppcm. On pourra s'aider du pgcd.
Calculez les nombres de Catalan. On rappelle que:
Catalan(0) = 1, Catalan(1) = 1, Catalan(n) = somme de Catalan(p)*Catalan(q) pour tout p+q = n-1. Voici les premiers nombres de Catalan: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796.
Calculez les coefficients du binôme par la méthode récursive simple: .
Calculez le nombre de coefficients binômiaux impairs sur une ligne du triangle de Pascal.
Traitons maintenant de grands entiers ou polynômes. Ils sont tous deux représentés par une liste de coefficients ordonnés par puissance croissante. Ainsi x^2 + 2x + 4 est-il décrit par la liste [4; 2; 1].
Définir l'addition de deux polynômes.
Définir une fonction convertissant un entier en un grand entier. On supposera que la base est décimale:
let base = 10;; base : int = 10
Définir une fonction convertissant un grand entier en un entier.
Définir une fonction imprimant un grand entier. Voici des exemples de grands entiers codés en base décimale:
let n1 = [1] and n987654321 = convertir_en_grand_entier 987654321 and n345 = convertir_en_grand_entier 345;; n1 : int list = [1] n987654321 : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9] n345 : int list = [5; 4; 3]
Définir une fonction d'addition de grands entiers. Attention à la retenue!
Calculez l'opposé d'un polynôme.
Écrire les fonctions de multiplication de grands entiers.
Calculer la factorielle de 100 avec des grands entiers.
Présentez bien vos programmes!