Bonjour,
Je travaille sur la fonction d'Ackermann
(voir ci dessous)
Je veux trouver le nombre d'appel de cette fonction.
pour 2 entiers saisis au clavier.
Comment faire ??
--------------------------------------
static int ack(int m, int n)
{ if (m == 0)
return n + 1;
else
if (n == 0)
return ack (m - 1, 1);
else
return ack (m - 1, ack (m, n - 1));
}
--------------------------------------
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Francis JUGE-BOIRARD
Julien Laurent wrote: Bonjour, Par le biais d'un compteur global. A noter, si plusieurs appel sont fait à ack durant le programme, il faut penser à réinitialiser le compteur. Dans le cas contraire, il additionnera les différents appels.
public class Ackerman { public static void main(String[] args) { ack (2, 3); System.out.println ("Nombre d'appel : " + count); }
static int ack(int m, int n) { count ++; if (m == 0) return n + 1; else if (n == 0) return ack (m - 1, 1); else return ack (m - 1, ack (m, n - 1)); }
// Compteur global pour le nombre d'appel. static int count = 0; }
Julien Laurent wrote:
Bonjour,
Par le biais d'un compteur global.
A noter, si plusieurs appel sont fait à ack durant le programme, il faut
penser à réinitialiser le compteur. Dans le cas contraire, il
additionnera les différents appels.
public class Ackerman
{
public static void main(String[] args)
{
ack (2, 3);
System.out.println ("Nombre d'appel : " + count);
}
static int ack(int m, int n)
{
count ++;
if (m == 0)
return n + 1;
else
if (n == 0)
return ack (m - 1, 1);
else
return ack (m - 1, ack (m, n - 1));
}
// Compteur global pour le nombre d'appel.
static int count = 0;
}
Julien Laurent wrote: Bonjour, Par le biais d'un compteur global. A noter, si plusieurs appel sont fait à ack durant le programme, il faut penser à réinitialiser le compteur. Dans le cas contraire, il additionnera les différents appels.
public class Ackerman { public static void main(String[] args) { ack (2, 3); System.out.println ("Nombre d'appel : " + count); }
static int ack(int m, int n) { count ++; if (m == 0) return n + 1; else if (n == 0) return ack (m - 1, 1); else return ack (m - 1, ack (m, n - 1)); }
// Compteur global pour le nombre d'appel. static int count = 0; }
Dominique MARIE
jerome moliere wrote:
-------------------------------------- static int ack(int m, int n) { if (m == 0) return n + 1; else if (n == 0) return ack (m - 1, 1); else return ack (m - 1, ack (m, n - 1)); } -------------------------------------- le plus propre (pour ne pas polluer ton code) consisterait en
l'utilisation d'un proxy chargé d'incrémenter ce compteur.... cf javadoc pour les détails sur le Design Pattern Proxy et l'implémentation en Java....
si tu regardes bien il utilise une fonction static, alors le pattern du proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais peut-être me gouréje :-)
jerome moliere wrote:
--------------------------------------
static int ack(int m, int n)
{ if (m == 0)
return n + 1;
else
if (n == 0)
return ack (m - 1, 1);
else
return ack (m - 1, ack (m, n - 1));
}
--------------------------------------
le plus propre (pour ne pas polluer ton code) consisterait en
l'utilisation d'un proxy chargé d'incrémenter ce compteur....
cf javadoc pour les détails sur le Design Pattern Proxy et
l'implémentation en Java....
si tu regardes bien il utilise une fonction static, alors le pattern du
proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais
peut-être me gouréje :-)
-------------------------------------- static int ack(int m, int n) { if (m == 0) return n + 1; else if (n == 0) return ack (m - 1, 1); else return ack (m - 1, ack (m, n - 1)); } -------------------------------------- le plus propre (pour ne pas polluer ton code) consisterait en
l'utilisation d'un proxy chargé d'incrémenter ce compteur.... cf javadoc pour les détails sur le Design Pattern Proxy et l'implémentation en Java....
si tu regardes bien il utilise une fonction static, alors le pattern du proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais peut-être me gouréje :-)
Nicolas Delsaux
Le 15.07 2003, Dominique MARIE s'est levé(e) et s'est dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"
si tu regardes bien il utilise une fonction static, alors le pattern du proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais peut-être me gouréje :-)
Boarf, en utilisant la classe Proxy, ça marchera sans problème.
Mais personnellement, j'irais pas tout de suite jouer avec ce genre de choses ...
-- Nicolas Delsaux "Dans l'espace, personne ne vous entend crier" Alien, le 8ème passager
Le 15.07 2003, Dominique MARIE
<dominique.marie@esial.uhp-nancy.france.invalid> s'est levé(e) et s'est
dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"
si tu regardes bien il utilise une fonction static, alors le pattern
du proxy... je crois qu'il cherche à faire du procédural, pas de
l'objet mais peut-être me gouréje :-)
Boarf, en utilisant la classe Proxy, ça marchera sans problème.
Mais personnellement, j'irais pas tout de suite jouer avec ce genre de
choses ...
--
Nicolas Delsaux
"Dans l'espace, personne ne vous entend crier"
Alien, le 8ème passager
Le 15.07 2003, Dominique MARIE s'est levé(e) et s'est dit "tiens, je vais écrire aux mecs de fr.comp.lang.java"
si tu regardes bien il utilise une fonction static, alors le pattern du proxy... je crois qu'il cherche à faire du procédural, pas de l'objet mais peut-être me gouréje :-)
Boarf, en utilisant la classe Proxy, ça marchera sans problème.
Mais personnellement, j'irais pas tout de suite jouer avec ce genre de choses ...
-- Nicolas Delsaux "Dans l'espace, personne ne vous entend crier" Alien, le 8ème passager