Ajouter un commentaire

fredericmazue
Re: [Problème : StackOverflowError]

Bonjour Nasix,

Quote:
Mon algorithme est très simple :

La première chose à faire est malgré tout de t'assurer, d'être certain que le calcul termine.

Sinon, si le calcule termine, ça va peut-être être difficile, je crois que la JVM est incapable d'optimisation de type "tail recursion"

Essaie quand même de réécrire des bouts de code dans cet esprit. A supposer une fonction factorielle classique

return valeur * fact_rec(valeur - 1);

récrire comme ça, avec un accumulteur

int fact_rec_term(int valeur, int accu)
{
	if(valeur == 1)
		return accu;
	return fact_rec_term(valeur-1, valeur*accu); 
}

pour avoir un appel récursif terminal. c'est une technique classique en C/C++, mais je ne sais pas si la JVM saura en tirer partie. Au niveau du byte-code je ne pense pas, mais dans le JIT c'est possible. faut essayer

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 V     V  TTTTTT   QQQ    N   N  Y   Y 
V V TT Q Q NN N Y Y
V V TT Q Q N N N Y
V V TT Q QQ N NN Y
V TT QQQQ N N Y
Q