Bonjour à tous,
J'ai l'intention de réalisé une multiplication de très grands nombres. Pour cela j'aimerai utilisé l'algorithme de Karatsuba.
Le problème est que cet algo se réalise uniquement grâce à la récursivité (enfin je ne vois pas comment faire sinon) et que j'ai bcp de mal en récursif.
Voila mes idées :
Comme on peut le voir, je suis très mauvais en récursif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Karatsuba (a, b) { t <- max(taille(a),taille(b)) // On prend la taille max entre les 2 B <- 10^(t/2) a1 = a / B // on garde la 1ère partie b1 = b / B a2 = a % B // On garde la 2ème partie b2 = b % B si (taille(a) >= 2) // Condition d'arrêt ???? { r1 = Karatsuba(a1,b1) r3 = Karatsuba(a2,b2) r2 = Karatsuba(a1+a2,b1+b2) - r1 - r3 r <- r1 * B * B + r2 * B + r3 } renvoie rmais j'aimerais vraiment réaliser cette fonction. Merci beaucoup si vous avez des idées ou même une autre méthode qui ne nécessiterais pas le récursif.
Merci d'avance







Répondre avec citation
Partager