begin process at 2012 02 12 03:30:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

récursive en itérative


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

récursive en itérative

vendredi 13 janvier 2006 à 23:04:29 | récursive en itérative

dark_naruto25

Salut les amis, voilà mon prob :
J'ai une fonction récursive que je veux mettre, pour des raisons de simplicité, en itérative. Voilà cette fonction :

void melanger(char *tab,int deb,int fin)
{
    int i;
    char tmp;
    char tab1[NB];
    cpTab(tab1,tab,NB);

    if( (fin-deb+1)>=3 )
        for(i=deb; i<=fin; i++)
        {
            melanger(tab1,deb+1,fin);
            swap(tab1[deb],tab1[i+1]);
        }
    else
    {
        afficheTab(tab1,NB);
        swap(tab1[deb],tab1[fin]);
        afficheTab(tab1,NB);
    }
}

donc si quelqu'un à une petite idée qui pourrai me mettre sur la voie, merci


vendredi 13 janvier 2006 à 23:35:20 | Re : récursive en itérative

BruNews

Administrateur CodeS-SourceS

Un mélangeur de chaine que tu veux ?
Si oui je viens de faire et semble aller.

void __stdcall MelangeChaine(char *psz)
{
  int len, pos, i;
  char c;
  i = len = strlen(psz);
  if(len < 2) return;
  srand(GetTickCount());
  do {
    while((pos = rand() % len) == i);
    i--;
    c = psz[i];
    psz[i] = psz[pos];
    psz[pos] = c;
  } while(i);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE x, PSTR y, int z)
{
  char buf[12];
  strcpy(buf, "Hello Word");
  MelangeChaine(buf);
  MessageBox(0, buf, szappname, 0);
  return 0;
}

ciao...
[ Lien ]
BruNews, MVP VC++

samedi 14 janvier 2006 à 19:17:13 | Re : récursive en itérative

dark_naruto25

en fait ma fonction affiche toute les possibilité de combinaison du tableau tab...
Seulement je l'ai fait en récursive (c'est plus simple), et il me la faudrais en itérative.
samedi 14 janvier 2006 à 19:44:41 | Re : récursive en itérative

vecchio56

Administrateur CodeS-SourceS
"que je veux mettre, pour des raisons de simplicité, en itérative" Non justement, un code récursif est souvent plus simple a comprendre
dimanche 15 janvier 2006 à 01:50:08 | Re : récursive en itérative

dark_naruto25

C'est juste le code où la fonction sera utilisé qui sera plus simple...
Alors pas d'idée ?!
dimanche 15 janvier 2006 à 02:41:39 | Re : récursive en itérative

KissyFroth

Membre Club
Je ne vois pas comment tu veux mettre ca en itératif : ce n'est pas comme si tu calculais la valeur d'une suite au rang n par exemple; dans ce cas tu fais une écriture itérative pour éviter des calculs inutiles. Or toi, dans ton cas précis tu cherche justement à avoir toutes les combinaisons. Par conséquent l'écriture récursive me semble la meilleure. La seule chose que je vois c'est que tu souhaiterais peut etre que les résultats s'affichent dans un autre ordre que l'ordre actuel mais sinon ta fonction est bonne. Ou alors (derniere solution qui se rapproche le plus de l'itératif mais ca n'en est pas ) tu traites ton tableau case par case (en faisant progresser un curseur)et tu essaye pour chaque case toutes les valeurs possibles (c'est à dire qui ne sont pas déjà "prises" dans les cases précédentes) Voilà en espérant que ca t'aide.
dimanche 15 janvier 2006 à 12:26:58 | Re : récursive en itérative

dark_naruto25

Je dois travailler sur chaque combinaison trouvée, mais comme la fonction est récursive cela m'oblige à mémoriser toute les combinaisons. et comme vous pouvez le voir, le nombre de combinaison possible est variable et peut être très très grand.




Cette discussion est classée dans : fin, nb, tab1, récursive, deb


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec mon algo et les structures [ par masterix ] Bonjour à tous,Voilà mon petit soucis je vient de commencer les structures j'ai beau chercher dans mes cours je ne voit pas où se trouve mon problème, Recursivités [ par darkwhite ] Salut a tous, Je viens de commencer mon initiation au fonction recursives mais il y a une chose qui m'echape dans ce code simple void debut_fin(int nb fin execution [ par anthony65 ] j'ai fais un programme console  c++ avec visual studio.net 2005 et des que je l'execute a la fin de l'execution il sort, ne me laissant pas voir le re Creation d'un mini Shell [ par halima ] Bonjour! Je dois ecrire un programme en C (mini_shell) qui se comporte comme un Shell.Ce programme doit donner le repertoire courant (getcwd(3)) suivi programme s'arret avec ;Fin de la connexion (raccroché) [ par sebastienmz ] Mon programme se lance il éféctue une recherche sur yahoo et d'un coups : Fin de la connexion (raccroché)et il s'arrete.jai mis : signal(SIGPIPE, SIG_ problème fonction récursive [ par lenanttais44 ] Bonjour j'ai un problème en utilisant des fonctions récursivesJe dois faire un tri fusionJ'ai fait du copier-coller sur des programmes étant déjà fait Probleme string [ par Metos62 ] Bonjour à tousVoulant utiliser la source MANIPULER UNE BASE DE DONNÉE ACCESS EN C (DEV-C++)j'ai été confronté au probléme des requetes gestion du temps en fraction de seconde dans C [ par mouloudh ] Bonjour la communauté,j'essaie de faire un programme qui simule le dértoulement d'un tapis roulant, avec vitesse et detecteurs de début et de fin. J'a Classique code : conversion decimale=>binaire [ par darkwhite ] salut à tous,Comme un nombre incalculable de gens je dois faire le desormais classique code : convertir du binaire en decimale. Pour ma part je l'ai e Problème avec vector<char> [ par gargourifahmi ] Salut, J'ai un pb dont je n'ai pas pu résoudre. En fait j'utilise un vecteur de caractère pour stocker des variables sous forme de caractères. Lors de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,794 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales