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 :-)
  SSS   EEEE  V     V  Y   Y  RRRR  
S E V V Y Y R R
SSS EEE V V Y RRRR
S E V V Y R R
SSSS EEEE V Y R RR