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 :
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 r
Comme on peut le voir, je suis très mauvais en récursif mais 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