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 :-)
 K  K  DDD   X   X  DDD    AA  
K K D D X X D D A A
KK D D X D D AAAA
K K D D X X D D A A
K K DDD X X DDD A A