logo

Enigmo 176 : Des petits tours pour une tour


« Précédent 1 2 Suivant » +


3 *Enigmo 176 : Des petits tours pour une tour

#msg2843373 Posté le 24-01-10 à 14:02
Posté par Profiljamo jamo Moderateur

Bonjour,

une tour est sur un échiquier rectangulaire. Elle est située dans le coin supérieur gauche (croix bleue) et doit se rendre dans la coin inférieur gauche (croix rouge).
La tour ne peut se placer que sur des cases en se déplaçant horizontalement ou verticalement. Elle ne doit jamais repasser par la même case (et donc la trajectoire ne peut pas se croiser).

Pour un échiquier de 3 lignes et 2 colonnes, il existe 4 trajets possibles (voir le dessin).

Question : combien existe-t-il de trajets différents pour un échiquier de 3 lignes et 5 colonnes ?


Bonne recherche !

Énigme 176#msg2843655 Posté le 24-01-10 à 15:09
Posté par Profilpierrecarre pierrecarre

perduBonjour !

Je compte 26 trajets possibles.

Cordialement,

r2.
Je me lance...#msg2844020 Posté le 24-01-10 à 16:35
Posté par ProfilLeDino LeDino

gagnéBonjour,

Je me lance...
Avec une conviction modérée je propose : 69 trajets différents.

Merci pour cette énigme originale, intéressante et inquiétante .
re : Enigmo 176 : Des petits tours pour une tour#msg2844347 Posté le 24-01-10 à 17:51
Posté par ProfilNofutur2 Nofutur2

perduJe trouve 75 trajets différents.
Mais je suis loin d'en être sûr !!!
re : Enigmo 176 : Des petits tours pour une tour#msg2844561 Posté le 24-01-10 à 18:40
Posté par Profilmanpower manpower

gagnéBonjour,

l'attente fut longue mais l'énigmo délectable.

Bon, pas facile d'être sûr d'avoir été exhaustif dans la recherche... mais comme je trouve par deux fois 69, je pense que ça devrait être ça... (???)

J'aurais aimé dessiner toutes les solutions mais le travail me semble assez fastidieux... pardon !
(ou alors, si personne d'autre ne l'a proposé, je pourrai scanner mon brouillon (que je conserve donc))

Par ailleurs, le prolongement que Rudi ne manquera pas de proposer m'intéresse également beaucoup:
Existe-t-il une formule générale (comme somme de combinatoire) qui permet de calculer la solution pour une grille (m,n) ? Et si on change les points de départ et d'arrivée ?
Bref, une énigmo riche comme je les aime !
Merci jamo.
re : Enigmo 176 : Des petits tours pour une tour#msg2844618 Posté le 24-01-10 à 18:56
Posté par Profiljonwam jonwam

perdu52
re : Enigmo 176 : Des petits tours pour une tour#msg2844872 Posté le 24-01-10 à 20:03
Posté par Profilgodefroy_lehardi godefroy_lehardi

perduBonjour Jamo,

Je pense qu'il existe 48 chemins possibles.

Merci pour cette énigme très intéressante.
re : Enigmo 176 : Des petits tours pour une tour#msg2844882 Posté le 24-01-10 à 20:06
Posté par ProfilDaniel62 Daniel62

gagnéBonjour Jamo,

nombre de trajets différents  \red \fbox{=69}
re : Enigmo 176 : Des petits tours pour une tour#msg2845277 Posté le 24-01-10 à 21:56
Posté par Profilpacou pacou

perduBonjour Jamo

Hum, ça sent le poisson mais je me sens pas de vérifier, tant pis pour moi.
Je trouve 71 trajets différents.

Merci pour l'énigmo.
re : Enigmo 176 : Des petits tours pour une tour#msg2845342 Posté le 24-01-10 à 22:15
Posté par Profilintegral integral

perduBonsoir jamo
J'en compte 67...
Merci pour l'énigme
re : Enigmo 176 : Des petits tours pour une tour#msg2845476 Posté le 24-01-10 à 23:14
Posté par Profilmiss_estrella miss_estrella

perduBonsoir!
Merci encore pour cette énigme...
Je pense qu'il existe 48 trajets différents pour un échiquier de 3 lignes et de 5 colonnes.

re : Enigmo 176 : Des petits tours pour une tour#msg2845517 Posté le 24-01-10 à 23:43
Posté par ProfilRudi Rudi

perduBonjour

Sans grande conviction, et sans logique trouvée, 67 trajets possibles pour 5 colonnes

avec 1 colonne : 1 possibilité
avec 2 colonnes : 4 possibilités
avec 3 colonnes : 11 possibilités
avec 4 colonnes : 28 possibilités
avec 5 colonnes : 67 possibilités

Rudy
re : Enigmo 176 : Des petits tours pour une tour#msg2845615 Posté le 25-01-10 à 08:33
Posté par ProfilMatheuxMatou MatheuxMatou

perdubonjour Jamo

Personnellement je dirais 25 trajets possibles

MM
re : Enigmo 176 : Des petits tours pour une tour#msg2845682 Posté le 25-01-10 à 11:50
Posté par Profiltotti1000 totti1000

gagnéSalut Jamo,
Je propose 69 trajets différents.
re : Enigmo 176 : Des petits tours pour une tour#msg2845741 Posté le 25-01-10 à 13:26
Posté par Profiljolenul jolenul

perduBonjour

je pense qu'il y a 30 possibilités

re : Enigmo 176 : Des petits tours pour une tour#msg2845882 Posté le 25-01-10 à 16:17
Posté par Profilsanantonio312 sanantonio312

perduBonsoir,
Désespérément, je n'ai trouvé aucune manière de commencer quelque chose qui ressemble à une formule.
Alors j'ai essayé de dénombrer.
Heureusement, il n'y a pas 10 lignes et 10 colonnes.
Alors, sur:
1 colonne: 1 trajet
2 colonnes: 3 trajets
3 colonnes: 7 trajets
4 colonnes: 16 trajets
5 colonnes: 38 trajets

Soit un total de 65 trajets possibles.
enigme#msg2845966 Posté le 25-01-10 à 17:05
Posté par Profilseb13009 seb13009

perduje dirais 16
re : Enigmo 176 : Des petits tours pour une tour#msg2846569 Posté le 25-01-10 à 19:56
Posté par Profilfrenicle frenicle

gagnéBonjour

Sauf erreur j'en trouve 69 (décidément, Gainsbourg est partout en ce moment !).

Le détail en images :





Merci pour cette énigme fort intéressante !
re : Enigmo 176 : Des petits tours pour une tour#msg2846755 Posté le 25-01-10 à 21:03
Posté par Profillo5707 lo5707

perdubonjour,

c'est le genre d'énigme où l'on est pas forcément sûr à 100% (en tout cas quand on cherche "à la main")

Ma réponse est 68 trajets différents



merci pour cette énigme
re : Enigmo 176 : Des petits tours pour une tour#msg2846800 Posté le 25-01-10 à 21:27
Posté par Profilmajda majda

perduje dirai 18 cas sont possible les 4 a chaque fois puis on combine  
j'espère que je n'ai rien oublié
re : Enigmo 176 : Des petits tours pour une tour#msg2847551 Posté le 26-01-10 à 19:06
Posté par Profillièvre59 lièvre59

gagnéBonjour jamo

je t'ai encore mis un de ce trucs

le résultat

alors que je t'explique, j'ai lettrée et chiffrée ta grille

j'espère que tu vas comprendre et que je n'ai pas d'erreurs



j'aurai pas su te mettre tous les tracés

2 colonnes et 3 lignes

a1,b1,c1
a1,a2,b2,c2,c1
a1,b1,b2,c2,c1
a1,a2,b2,b1,c1

= 4 trajets

3 colonnes et 3 lignes

a1,a2,a3,b3,c3,c2,c1
a1,a2,a3,b3,c3,c2,b2,b1,c1
a1,b1,b2,a2,a3,b3,c3,c2,c1
a1,a2,b2,b3,c3,c2,c1
a1,a2,a3,b3,b2,b1,c1
a1,a2,a3,b3,b2,c2,c1
a1,b1,b2,b3,c3,c2,c1

= 7 trajets

4 colonnes et 3 lignes

a1,a2,a3,a4,b4,b3,c3,c2,c1
a1,a2,b2,b3,b4,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,b4,c4,c3,c2,c1
a1,a2,a3,a4,b4,c4,c3,b3,b2,b1,c1
a1,b1,b2,b3,a3,a4,b4,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,b4,b3,c3,c2,c1
a1,a2,a3,a4,b4,c4,c3,c2,c1
a1,a2,b2,b3,a3,a4,b4,c4,c3,c2,c1
a1,b1,b2,b3,b4,c4,c3,c2,c1
a1,a2,a3,a4,b4,c4,c3,b3,b2,c2,c1
a1,a2,a3,b3,b4,c4,c3,c2,c1
a1,a2,a3,b3,b4,c4,c3,c2,b2,b1,c1
a1,b1,b2,a2,a3,b3,b4,c4,c3,c2,c1
a1,a2,a3,a4,b4,b3,b2,b1,c1
a1,a2,a3,a4,b4,c4,c3,c2,b2,b1,c1
a1,a2,a3,a4,b4,b3,c3,c2,b2,b1,c1
a1,a2,a3,a4,b4,b3,b2,c2,c1

= 17 trajets

5 colonnes et 3 lignes

a1,b1,b2,b3,b4,b5,c5,c4,c3,c2,c1
a1,b1,b2,b3,b4,a4,a5,b5,c5,c4,c3,c2,c1
a1,b1,b2,b3,a3,a4,b4,b5,c5,c4,c3,c2,c1
a1,b1,b2,b3,a3,a4,a5,b5,c5,c4,c3,c2,c1
a1,b1,b2,b3,a3,a4,a5,b5,b4,c4,c3,c2,c1
a1,b1,b2,a2,a3,b3,b4,b5,c5,c4,c3,c2,c1
a1,b1,b2,a2,a3,b3,b4,a4,a5,b5,c5,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,b4,b5,c5,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,a5,b5,c5,c4,b4,b3,c3,c2,c1
a1,b1,b2,a2,a3,a4,a5,b5,c5,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,a5,b5,b4,c4,c3,c2,c1
a1,b1,b2,a2,a3,a4,a5,b5,b4,b3,c3,c2,c1
a1,a2,b2,b3,b4,b5,c5,c4,c3,c2,c1
a1,a2,b2,b3,b4,a4,a5,b5,c5,c4,c3,c2,c1
a1,a2,b2,b3,a3,a4,b4,b5,c5,c4,c3,c2,c1
a1,a2,b2,b3,a3,a4,a5,b5,c5,c4,c3,c2,c1
a1,a2,b2,b3,a3,a4,a5,b5,b4,c4,c3,c2,c1
a1,a2,a3,b3,b4,b5,c5,c4,c3,c2,b2,b1,c1
a1,a2,a3,b3,b4,b5,c5,c4,c3,c2,c1
a1,a2,a3,b3,b4,a4,a5,b5,c5,c4,c3,c2,b2,b1,c1
a1,a2,a3,b3,b4,a4,a5,b5,c5,c4,c3,c2,c1
a1,a2,a3,a4,b4,b5,c5,c4,c3,b3,b2,c2,c1
a1,a2,a3,a4,b4,b5,c5,c4,c3,b3,b2,b1,c1
a1,a2,a3,a4,b4,b5,c5,c4,c3,c2,b2,b1,c1
a1,a2,a3,a4,b4,b5,c5,c4,c3,c2,c1
a1,a2,a3,a4,a5,b5,c5,c4,b4,b3,c3,c2,b2,b1,c1
a1,a2,a3,a4,a5,b5,c5,c4,b4,b3,c3,c2,c1
a1,a2,a3,a4,a5,b5,c5,c4,b4,b3,b2,c2,c1
a1,a2,a3,a4,a5,b5,c5,c4,b4,b3,b2,b1,c1
a1,a2,a3,a4,a5,b5,c5,c4,c3,b3,b2,c2,c1
a1,a2,a3,a4,a5,b5,c5,c4,c3,b3,b2,b1,c1
a1,a2,a3,a4,a5,b5,c5,c4,c3,c2,b2,b1,c1
a1,a2,a3,a4,a5,b5,c5,c4,c3,c2,c1
a1,a2,a3,a4,a5,b5,b4,c4,c3,b3,b2,c2,c1
a1,a2,a3,a4,a5,b5,b4,c4,c3,b3,b2,b1,c1
a1,a2,a3,a4,a5,b5,b4,c4,c3,c2,b2,b1,c1
a1,a2,a3,a4,a5,b5,b4,c4,c3,c2,c1
a1,a2,a3,a4,a5,b5,b4,b3,c3,c2,b2,b1,c1
a1,a2,a3,a4,a5,b5,b4,b3,c3,c2,c1
a1,a2,a3,a4,a5,b5,b4,b3,b2,c2,c1
a1,a2,a3,a4,a5,b5,b4,b3,b2,b1,c1

= 41 trajets

4 + 7 + 17 + 41 = 69 trajets en tout

quel truc ! j'ai pratiqué par symétrie pour les trajets

trop long

Merci jamo

Louisa

re : Enigmo 176 : Des petits tours pour une tour#msg2848342 Posté le 27-01-10 à 14:18
Posté par Profilehiernard ehiernard

perduAlors (à la main...)

1 chemin pour un damier 3x1

3 nouveaux pour un damier 3x2

7 de plus pour un damier 3x3

17 de plus pour un damier 3x4

et 38 de plus pour un 3x5

soit un total de 66
re : Enigmo 176 : Des petits tours pour une tour#msg2848446 Posté le 27-01-10 à 15:04
Posté par ProfilUgreno Ugreno

gagnébonjour Jamo,

Je propose 69
re : Enigmo 176 : Des petits tours pour une tour#msg2848729 Posté le 27-01-10 à 16:31
Posté par Profildpi dpi

perduSur les 15 cases ,je trouve que la tour peut aller de A à C  en
2 coups : 1
4 coups : 3
6 coups : 5
8 coups : 9
10 coups :12
12 coups :23
14 coups :3
Soit un total de 56 trajets sauf erreur ou omission
re : Enigmo 176 : Des petits tours pour une tour#msg2848768 Posté le 27-01-10 à 16:41
Posté par ProfilDaniel62 Daniel62

gagnéRe bonjour Jamo,

voici les différents trajets possibles:
.

re : Enigmo 176 : Des petits tours pour une tour#msg2849222 Posté le 27-01-10 à 19:05
Posté par Profilrezoons rezoons

perduBonjour ,
le sage a dit qui ne tente rien n'a rien  je pense que c'est une folie de me lancer comme ca sans etre sur de mon résultat mais tant pis je dirais 53 trajets différents (ca sent le ) la méthode utilisée est simple:
chercher le nombre de trajet de longueur 3 cases, ceux de longueur 5 cases, ceux de longueur 7 cases etc..
j'ai trouvé:
1 trajet de 3 cases
3 trajets de 5 cases
5 trajets de 7 cases
9 trajets de 9 cases
11 trajets de 11 cases
20 trajets de 13 cases
4 trajets de 15 cases
soit 53 trajets différents
re : Enigmo 176 : Des petits tours pour une tour#msg2849642 Posté le 27-01-10 à 21:38
Posté par ProfilLEGMATH LEGMATH

perduBonsoir jamo,

Il existe 66 trajets différents pour un échiquier de 3 lignes et 5 colonnes.
re : Enigmo 176 : Des petits tours pour une tour#msg2849961 Posté le 28-01-10 à 11:16
Posté par ProfilAurelien_ Aurelien_

gagnéBonjour,

Pour moi : 69
quel beau chiffre !
re : Enigmo 176 : Des petits tours pour une tour#msg2849977 Posté le 28-01-10 à 11:30
Posté par ProfilCQR_67 CQR_67

gagnéBonjours,

Pour cette énigme j'ai réalisé les différentes possibilités pour un système 3x2 => 4 solutions et 3x3=> 11 solution après plusieurs essais j'ai pu conjecturer une suite : Un= 1 + Un-1 + n*2n/4 avec U1=1 et n le nombre de colonne soit 3xn avec n=2 pour 3x2.
En effet j'ai pu constater que à chaque ajout de colonne on ajoute une possibilité ne comportant pas de possibilité symétrique à celui-ci, plus un certain nombre n*2n/4 de possibilités possédant un symétrique.
On a donc:
U1=1
U2=1+1+2*22/4=4
U3=1+4+3*23/4=11
U4=1+11+4*24/4=28
U5=1+28+5*25/4=69

Je propose donc la solution: Il y a 69 possibilités pour un échiquier de 3 lignes et 5 colonnes.
re : Enigmo 176 : Des petits tours pour une tour#msg2851571 Posté le 29-01-10 à 16:28
Posté par Profiltorio torio

gagnéAvec un arbre, j'ai trouvé : 69 trajets différents.

A+
Torio
re : Enigmo 176 : Des petits tours pour une tour#msg2854428 Posté le 31-01-10 à 11:05
Posté par Profilhhh86 hhh86

perduJe dirais 32
re : Enigmo 176 : Des petits tours pour une tour#msg2855438 Posté le 31-01-10 à 16:06
Posté par ProfilRumbafan Rumbafan

gagnéBonjour,

Ce fut long...mais c'est à ça que sert le week-end  

Je propose 69 chemins possibles...

(sur 1798 chemins au total : les bons, ceux qui sortent du cadre et ceux qui se referment sur eux-même
...)
re : Enigmo 176 : Des petits tours pour une tour#msg2858028 Posté le 01-02-10 à 21:29
Posté par Profilsankukai51 sankukai51

perdu13 Trajets !
re : Enigmo 176 : Des petits tours pour une tour#msg2858374 Posté le 02-02-10 à 11:37
Posté par Profilptitjean ptitjean

gagnéBonjour,

69 trajets possibles

Merci
Ptitjean
re : Enigmo 176 : Des petits tours pour une tour#msg2858937 Posté le 02-02-10 à 18:33
Posté par Profilarcher archer

perduil peut y avoir 32 déplacement possible
Reponse : enigme#msg2861254 Posté le 03-02-10 à 22:36
Posté par ProfilDaysone Daysone

perduIl existe 15 trajets différents.

re : Enigmo 176 : Des petits tours pour une tour#msg2864055 Posté le 06-02-10 à 15:19
Posté par Profildagwa dagwa

perduBonjour,

je dirais 36.
re : Enigmo 176 : Des petits tours pour une tour#msg2868208 Posté le 08-02-10 à 17:41
Posté par Profilpierre-remy pierre-remy

perdu28 mais je ne suis pas sûr du tout !
merci pour l'énigme !
RE : Enigmo 176#msg2870928 Posté le 10-02-10 à 00:06
Posté par Profiljw_dagon jw_dagon

perduBonsoir,

Je trouve 73 trajets possibles.

Bon, j'ai trouvé ça à la main, à l'ancienne, et je ne suis pas du tout sûr du résultat. Si quelqu'un a un algo à proposer, je suis preneur.

Merci pour l'énigme.
re : Enigmo 176 : Des petits tours pour une tour#msg2873788 Posté le 11-02-10 à 17:17
Posté par Profil1emeu 1emeu

gagnéBonjour,

je compte 69 trajets possibles.
Merci pour l'énigme,

1emeu
solution ^^#msg2874606 Posté le 12-02-10 à 05:14
Posté par Profilaajli aajli

perduc'est un peut dure a trouver les jeunes ^^
j'ai trouver  45 trajets différents

J'espère que c'est juste
c combien jamo  ??  ^^
hhh
re : Enigmo 176 : Des petits tours pour une tour#msg2878123 Posté le 14-02-10 à 22:19
Posté par Profilfrenicle frenicle

gagnéBonjour,

Après moult réflexion, je crois avoir enfin démontré la relation de récurrence donnant le nombre de trajets pour un échiquier de 3 n cases. Si Tn est ce nombre de trajets, on a

Tn = 2Tn-1 + Tn-2 + 2

Les premiers Tn sont donc :

T1 = 1
T2 = 4
T3 = 11
T4 = 28
T5 = 69
T6 = 168
T7 = 407
T8 = 984
T9 = 2377
T10 = 5740
...

Merci encore jamo pour cette passionnante énigme.

Cordialement
Frenicle
re : Enigmo 176 : Des petits tours pour une tour#msg2879585 Posté le 15-02-10 à 18:40
Posté par Profiljamo jamo Moderateur

Clôture de l'énigme

Bon, il est temps d'arrêter le massacre pour cette énigme qui aurait mérité 4 étoiles !

La bonne réponse est : 69 trajets.

Pourtant, j'ai pris cette énigme dans un rallye mathématique de niveau terminale.

Le sujet ici : (exercice 3)

Et le corrigé ici :

Dans ce corrigé, on y démontre la formule de récurrence pour ce problème d'apparence simple mais bougrement complexe !

Qui ose se lancer dans le même problème avec 4 lignes ? 5 lignes ? n lignes ?

Et c'est donc totti1000 qui gagne le mois de janvier !
re : Enigmo 176 : Des petits tours pour une tour#msg2879845 Posté le 15-02-10 à 20:39
Posté par Profillièvre59 lièvre59

gagnéBonsoir

Bravo totti1000

formule de récurrence => j'ai regardé

Merci jamo

Louisa
re : Enigmo 176 : Des petits tours pour une tour#msg2879973 Posté le 15-02-10 à 21:51
Posté par Profilfrenicle frenicle

gagnéBonsoir

J'ai trouvé assez rapidement la relation de récurrence mais pour la démontrer je me suis pris la tête pendant quinze jours
Apparemment, ma démonstration est un peu différente de celle du lien de jamo.
Mais c'est presque aussi difficile à exposer clairement qu'à trouver.

Chapeau au lycéen qui a trouvé tout ça en temps limité !!

Dès que j'ai un moment, je regarde ce que ça donne avec 4 lignes, mais ça promet...
re : Enigmo 176 : Des petits tours pour une tour#msg2883997 Posté le 17-02-10 à 20:12
Posté par Profilmanpower manpower

gagnéBonsoir,

merci aux courageux qui ont posté les solutions en image (ce dont je n'ai pas eu le courage).
Merci également pour la belle formule de récurrence
et enfin bravo à totti1000 pour sa victoire.
re : Enigmo 176 : Des petits tours pour une tour#msg2891315 Posté le 20-02-10 à 22:16
Posté par Profillo5707 lo5707

perdu il m'en manque un seul...
re : Enigmo 176 : Des petits tours pour une tour#msg2895910 Posté le 23-02-10 à 10:22
Posté par Profil1emeu 1emeu

gagnéBonjour,

pour ceux que ca interesserait, voici un code en C++ permettant de calculer le résultat et d'afficher tous les chemins possibles pour n'importe quelle taille de rectangle.
Chaque ligne de la sortie contient un chemin donné avec les lettres d,g,h,b (pour droite, gauche, haut, bas).  La dernière ligne contient le nombre de chemins.
Pour choisir les tailles du rectangles, il suffit de changer les valeurs LARGEUR et HAUTEUR (aux lignes 3 et 4 du code).

Par exemple, pour 5 lignes et 7 colonnes, il trouve les 638472 chemins possibles en 43s sur mon ordi.

Bon voilà le code:

#include <iostream>
#include <stdlib.h>
#define LARGEUR 5
#define HAUTEUR 3
using namespace std;
int compteur=0;
int verif (char* tc, unsigned int l)
{
  int i;
  int R1 = 0;
  int R2 = 0;
  for (i = 0; i < l; i++)
    {
        switch(tc[i])
{
case 'd': R1 ++; break;
case 'b': R2 ++; break;
case 'g': R1 --; break;
case 'h': R2 --; break;
}
      if (R1 < 0 || R1 > LARGEUR-1 || R2 < 0 || R2 > HAUTEUR-1)  return 0;
    }
  R1 = 0;
  R2 = 0;
  for (i = 0; i < l; i++)
    {
        switch(tc[l-i-1])
{
case 'd': R1 ++; break;
case 'b': R2 ++; break;
case 'g': R1 --; break;
case 'h': R2 --; break;
}
      if (R1 == 0 && R2 == 0)  return 0;

    }
  if (R1 == 0 && R2 == (HAUTEUR-1)) return 2;
  return 1;
}
void search (char tc[], unsigned int l){
  unsigned int i;
  int v = verif (tc, l);
  switch(v)
    {
    case 0: return;
    case 2:
      for (i = 0; i < l; i++) cout << tc[i];
      cout << endl;
      compteur++;
      return;
    case 1:
      tc[l] = 'd';
      search (tc, l + 1);
      tc[l] = 'b';
      search (tc, l + 1);
      tc[l] = 'g';
      search (tc, l + 1);
      tc[l] = 'h';
      search (tc, l + 1);
    }
}
int main ()
{
  char tc[50];
  unsigned int i;
  for (i = 0; i < 50; i++) tc[i] = 0;
  tc[0] = 'd';
  search (tc, 1);
  tc[0] = 'b';
  search (tc, 1);
  cout<<compteur<<endl;
}


1emeu
re : Enigmo 176 : Des petits tours pour une tour#msg2902586 Posté le 26-02-10 à 11:52
Posté par Profilmanpower manpower

gagnéUn beau programme pour tous les cas, merci 1emeu !
Bon, dommage que je sois ignare en C++, mais je vais regarder ça de plus près...
re : Enigmo 176 : Des petits tours pour une tour#msg2903990 Posté le 26-02-10 à 21:33
Posté par Profilcaylus caylus

Bonsoir 1emeu,

Félicitations pour ce programme.
La 2è boucle de la fonction verif est une très jolie solution pour éviter le bouclage dans un chemin.

Bonsoir ManPower,si le basic ne vous est pas inconnu:


DECLARE SUB See (l AS INTEGER)
DECLARE SUB Init ()
DECLARE SUB Chemin (l AS INTEGER)
DECLARE FUNCTION Verify% (l AS INTEGER)
CONST LARGEUR = 5
CONST HAUTEUR = 3
CONST Droite = 1, Gauche = 2, Haut = 3, Bas = 4
CONST che$ = "EONS"

CONST Faux = (0 = 1), Vrai = NOT (Faux)

DIM SHARED Noeud(50) AS INTEGER
DIM SHARED Compteur AS LONG
CLS
CALL Init
  Noeud(0) = Droite: CALL Chemin(1)
  Noeud(0) = Bas: CALL Chemin(1)
  PRINT "Compteur="; Compteur
END

SUB Chemin (l AS INTEGER)
DIM v AS INTEGER
  v = Verify%(l)
  SELECT CASE v
   CASE 0

   CASE 2
    Compteur = Compteur + 1
    CALL See(l)
   CASE 1
    Noeud(l) = Droite: CALL Chemin(l + 1)
    Noeud(l) = Bas: CALL Chemin(l + 1)
    Noeud(l) = Gauche: CALL Chemin(l + 1)
    Noeud(l) = Haut: CALL Chemin(l + 1)
   END SELECT
END SUB

SUB Init
DIM i AS INTEGER
  FOR i = 1 TO 50
   Noeud(i) = 0
  NEXT i
  Compteur = 0
END SUB

SUB See (l AS INTEGER)
DIM i AS INTEGER
DIM ch AS STRING
LOCATE 2, 1: PRINT SPACE$(80)
LOCATE 2, 1
  ch = ""
  FOR i = 0 TO l - 1
   ch = ch + MID$(che$, Noeud(i), 1)
  NEXT i
  PRINT Compteur, ch
END SUB

FUNCTION Verify% (l AS INTEGER)

  DIM Done AS INTEGER: Done = Faux
  DIM Ret AS INTEGER: Ret = 1
  DIM i AS INTEGER
  DIM R1 AS INTEGER: R1 = 0
  DIM R2 AS INTEGER: R2 = 0

  FOR i = 0 TO l - 1
   SELECT CASE Noeud(i)
    CASE Droite
     R1 = R1 + 1
    CASE Gauche
     R1 = R1 - 1
    CASE Bas
     R2 = R2 + 1
    CASE Haut
     R2 = R2 - 1
   END SELECT
   IF ((R1 < 0) OR (R1 > (LARGEUR - 1)) OR (R2 < 0) OR (R2 > (HAUTEUR - 1))) THEN
    Ret = 0
    Done = Vrai
    EXIT FOR
   END IF
  NEXT i

  IF NOT (Done) THEN
   R1 = 0
   R2 = 0
   FOR i = 0 TO l - 1
    SELECT CASE Noeud(l - i - 1)
     CASE Droite
      R1 = R1 + 1
     CASE Gauche
      R1 = R1 - 1
     CASE Bas
      R2 = R2 + 1
     CASE Haut
      R2 = R2 - 1
    END SELECT
  
    IF ((R1 = 0) AND (R2 = 0)) THEN
    ' on boucle!!!!
     Ret = 0
     Done = Vrai
     EXIT FOR
    END IF
   NEXT i
   IF (R1 = 0 AND R2 = (HAUTEUR - 1)) THEN
    Ret = 2
   END IF
  END IF
Verify% = Ret
END FUNCTION

« Précédent 1 2 Suivant » +


Challenge (énigme mathématique) terminé .
Nombre de participations : 39
:)33,33 %66,67 %:(
13 26

Temps de réponse moyen : 107:14:31.

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.



cours particuliers - cours de maths haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2010