Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/06/2006, à 21:14

Premium

[Résolu] Tour de Hanoi

Salut,

je voudrais savoir comment se code les tours de Hanoi

Merci

Dernière modification par Premium (Le 12/06/2006, à 11:18)

Hors ligne

#2 Le 13/06/2006, à 15:34

benefred

Re : [Résolu] Tour de Hanoi

Hors ligne

#3 Le 13/06/2006, à 22:22

Luckynow

Re : [Résolu] Tour de Hanoi

bouh c est pas bien de faire faire ces devoirs par les autres
ceci n'est pas un troll mai un conseil...
apprend au moins a trouver par toi même sur le net
http://www.google.fr/search?hl=fr&ie=IS … ogle&meta=
sinon ben salut et juste pour rire dans quel langage tu le veux ??

Dernière modification par Luckynow (Le 13/06/2006, à 22:23)

Hors ligne

#4 Le 13/06/2006, à 22:30

Bobbybionic

Re : [Résolu] Tour de Hanoi

Souvenirs souvenirs...

J'avais fais ça en CamL il fut un temps, c'était marrant (enfin, façon de parler, je ne suis pas un geek tongue)


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#5 Le 13/06/2006, à 22:42

Riicooo

Re : [Résolu] Tour de Hanoi

J'y ai eu droit aussi wink mais en pascal...
Exercice typique pour les fonctions récursives.
Cela dit, j'ai découvert (donc pas totalement sur que cela soit vrai) que la solution (non récursive) est très très simple :
Soit les 3 tours A, B et C, et
1 le déplacement d'une pièce de A vers B ou de B vers A
2 le déplacement d'une pièce de A vers C ou de C vers A
3 le déplacement d'une pièce de C vers B ou de B vers C

La solution en partant de la tour A pleine : répéter les mouvements 1,2,3, 1,2,3, 1,2,3,... étrange non tongue.

Dernière modification par Riicooo (Le 13/06/2006, à 22:43)

Hors ligne

#6 Le 13/06/2006, à 23:00

Dy

Re : [Résolu] Tour de Hanoi

dans emacs y a une rubrique jeux il me semble parmi lesquels se trouvent les tours de hanoi. Enfin sur la fedora 3 de la fac smile


Install-party Ubuntu à Dijon le 12 mai.
Plus d'informations sur le site d'Ubuntu-Dijon : http://ubuntu-dijon.org

Hors ligne

#7 Le 13/06/2006, à 23:30

node

Re : [Résolu] Tour de Hanoi

Salut tout le monde
Excusez-moi pour ce hors sujet, mais ça m'intéresse vraiment.

Premium, tu es la première personne que je rencontre qui ait posté autant de messages sans jamais poster sur un autre fil de discussion que les tiens.
Peux-tu me dire ce qui t'amène à être consommateur plutôt que « consommacteur » ? (je n'aime pas vraiment ce mot, mais c'est ce que j'ai trouvé de mieux pour faire court)

(je t'aurais bien demandé ça par courriel, mais il est marqué (Information privée) dans la page de ton profil)

Hors ligne

#8 Le 14/06/2006, à 00:11

Riicooo

Re : [Résolu] Tour de Hanoi

impressionnant en effet ! très bonne remarque !
42 topic créés, pas un seul message posté sur d'autre !

Hors ligne

#9 Le 19/06/2006, à 14:42

trucutu

Re : [Résolu] Tour de Hanoi

Bobbybionic a écrit :

Souvenirs souvenirs...

J'avais fais ça en CamL il fut un temps, c'était marrant (enfin, façon de parler, je ne suis pas un geek tongue)

Oui, tu as dû faire ça avec M Lolo... si je ne me trompe pas
Il y a même un exemple codé dans le livre de référence (où comment expliquer l'art des fonctions récursives...)


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#10 Le 19/06/2006, à 15:11

Bobbybionic

Re : [Résolu] Tour de Hanoi

@trucutu : Raté wink

C'était pas avec Lolo tongue

(je suis connu c'est fou lol)


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#11 Le 19/06/2006, à 15:14

trucutu

Re : [Résolu] Tour de Hanoi

Ah ouais ? aux temps pour moi...


La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !

Hors ligne

#12 Le 22/06/2006, à 08:42

baloo

Re : [Résolu] Tour de Hanoi

slt a tous les tours de hanoï en langage c ca marche comment

#13 Le 25/06/2006, à 21:04

Bobbybionic

Re : [Résolu] Tour de Hanoi

jecpaàmonavifodaborécrircomilfo wink


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#14 Le 25/06/2006, à 23:08

Link31

Re : [Résolu] Tour de Hanoi

Les tours de Hanoï en C++ :
Le cours : http://cowww.epfl.ch/infmaph/slides/cours10.pdf

Un exemple (indépendant du cours ci-dessus) :

#include <stdio.h>                                                     
#include <stdlib.h>   
#include <time.h>                                                  
int N, cpt=0;                                                                  
                                                                       
int **creermatrice(int l, int c)                                       
{ int i,**p;                                                           
  p = (int **)malloc(sizeof(int *) * l);                               
  for (i=0 ; i<l ; i++)                                                
      { p[i] = (int *)malloc(sizeof(int) * c); }                       
    return(p);                                                         
}                                                                      
                                                                       
int **liremat(int l)                                                   
{ int **p;                                                             
  int i, j;                                                            
  p=creermatrice(l,3);                                                 
                                                                       
  for (i=0 ; i<l ; i++)                                                
    {   for (j=0 ; j<3 ; j++)                                          
            {  if (j) p[i][j] = 0;                                     
               else  p[i][j] = i+1;                                    
             }                                                         
    }                                                                  
return p;                                                             
}                                                                      
                                                                       
                                                                       
void ecriremat(int **p, int l)                                         
{ int i, j; 
  printf("\n\n");                                                            
  for (i=0 ; i<l ; i++)                                                
      {   for (j=0 ; j<3 ; j++)                                        
              {  if (p[i][j] == 0) printf(".\t"); 
                 else printf("%d\t", p[i][j]);  }                              
        printf("\n");                                                    
      } 
    printf("-------------------");                                                                     
}                                                                      
                                                                       
void traiter(int **p, int d, int a, int n) 
    { 
       int i=0, v; 
       while ( (i<n) && (p[i][d] == 0) ) 
               i++; 
                
        if (i<n) { v = p[i][d]; 
                   p[i][d] = 0; 
                 } 
         i=n-1; 
          
         while ( (i>=0)    && (p[i][a] != 0) ) 
                   i--; 
         if (i>=0) 
             p[i][a] = v; 
              
         cpt++;      
         ecriremat(p, N);      
      }     
                                                                       
                                                                       
    void hanoi(int **p, int n, int un, int deux, int trois)            
    {                                                         
          if (n == 0 ) {;}                                             
              else                                                     
              { hanoi(p, n-1, un, trois, deux);                        
                     
                     traiter(p, un, trois, N); 
                                                                     
                 hanoi(p, n-1, deux, un, trois);                    
              }                                                        
    }                                             
                                                                       
    int main()                                                         
    {  int **p; 
                                                                           
        printf("Nombre d anneaux ? : ");                               
        scanf("%d", &N);                                               
         
        p = liremat(N);                                                
        printf("\n\n");                                                
        ecriremat(p, N);                                               
                                                                       
        hanoi(p, N, 0, 1, 2);                                          
                                                                      
        printf("\n\nRealise en %d operations\n\n", cpt);                                                
                                                                       
        return 0;                                                      
    }

Dernière modification par Link31 (Le 25/06/2006, à 23:15)

Hors ligne

#15 Le 26/06/2006, à 20:18

PierreR

Re : [Résolu] Tour de Hanoi

Bobbybionic a écrit :

Souvenirs souvenirs...

J'avais fais ça en CamL il fut un temps, c'était marrant (enfin, façon de parler, je ne suis pas un geek tongue)

Classe prépa MPSI option info ? ou on peut avoir à faire du CAML ailleurs ?

Hors ligne

#16 Le 26/06/2006, à 20:19

Bobbybionic

Re : [Résolu] Tour de Hanoi

@PierreR : C'est ça, mais certaines fac font du CamL (mais vu la difficulté du langage, c'est souvent tard)


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#17 Le 28/06/2006, à 13:50

PierreR

Re : [Résolu] Tour de Hanoi

Ok, merci.
Difficulté du langage ?

Hors ligne

#18 Le 28/06/2006, à 16:21

Bobbybionic

Re : [Résolu] Tour de Hanoi

Oui il parait simple à première vue mais il est surpuissant le bestiau wink


Non à la vente liée. Non au monopole Windows.
Tous ensemble, refusons les logiciels préinstallés et tournons nous vers le libre.

http://bobbybionic.wordpress.com

Hors ligne

#19 Le 28/06/2006, à 17:16

darkangel6669

Re : [Résolu] Tour de Hanoi

Bobbybionic a écrit :

jecpaàmonavifodaborécrircomilfo wink

lol:lol::lol::lol::lol:

Hors ligne

#20 Le 09/09/2006, à 13:59

Dy

Re : [Résolu] Tour de Hanoi

résolu


Install-party Ubuntu à Dijon le 12 mai.
Plus d'informations sur le site d'Ubuntu-Dijon : http://ubuntu-dijon.org

Hors ligne