Problème avec un Algorithme Complexe.
zemzm
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
bonsoir tout le monde.
je suis bloqué sur un Algorithme qui consiste à coder les pions d'un jeu de dominos.
en effet je pars du principe qu'un jeu de dominos, on a chaque pion qui est constitué d'un couple (donc orienté) d'entiers, chacun compris entre 1 et 6. et dans ce jeu, une suite de pions est valide si le seconde entier d'un pions est égale au premier entier du pion suivant dans la suite.
Ce que je souhaite faire est de coder chaque pion par un entier. qui le déterminera (entier qui identifiera ce pion).
je me demande aussi quel serai dans ce cas le plus grand entier (entier max) et le plus petit (entier min).
j'ai pensé à une première solution qui représentera un pion par une fonction de hachage. or dans ce cas je ne vois pas quel opérande utiliser. l'addition ne marche pas. car si on un pions; p1 (4:2) avec l'addition on le confondra avec p2(3:3), p3(5:1). qui valent tous 6.
merci à ceux qui peuvent me donner un coup de pousse ou un piste.
zem
je suis bloqué sur un Algorithme qui consiste à coder les pions d'un jeu de dominos.
en effet je pars du principe qu'un jeu de dominos, on a chaque pion qui est constitué d'un couple (donc orienté) d'entiers, chacun compris entre 1 et 6. et dans ce jeu, une suite de pions est valide si le seconde entier d'un pions est égale au premier entier du pion suivant dans la suite.
Ce que je souhaite faire est de coder chaque pion par un entier. qui le déterminera (entier qui identifiera ce pion).
je me demande aussi quel serai dans ce cas le plus grand entier (entier max) et le plus petit (entier min).
j'ai pensé à une première solution qui représentera un pion par une fonction de hachage. or dans ce cas je ne vois pas quel opérande utiliser. l'addition ne marche pas. car si on un pions; p1 (4:2) avec l'addition on le confondra avec p2(3:3), p3(5:1). qui valent tous 6.
merci à ceux qui peuvent me donner un coup de pousse ou un piste.
zem
A voir également:
- Problème avec un Algorithme Complexe.
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Racine complexe pci express ✓ - Forum Pilotes (drivers)
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
3 réponses
Tu peux utiliser n'importe quelle base > 7.
La plus "simple" (pour débuguer en tout cas) est la base 10.
Considérant un pion(a; b), cela ferait : 10a+b
p1(4;2) => 42,
p2(3;3) => 33,
p3(5:1) => 51
Je n'ai pas bien saisi si ce n'était que ça ton problème ou si je n'y réponds qu'à moitié par cette réponse.
La plus "simple" (pour débuguer en tout cas) est la base 10.
Considérant un pion(a; b), cela ferait : 10a+b
p1(4;2) => 42,
p2(3;3) => 33,
p3(5:1) => 51
Je n'ai pas bien saisi si ce n'était que ça ton problème ou si je n'y réponds qu'à moitié par cette réponse.
En fait, si j'avais à le faire moi je ferai une liste chaînée de domino (contenant les 2 nombres séparément, le nombre a + le nombre b + domino suivant éventuellement doublement chaîné avec le précédent également) mais je ne sais pas ton niveau voilà pourquoi je n'avais que simplement répondu.
Avec ma solution, par exemple en base 10. Pour retrouver les 2 nombres tu n'as qu'à utiliser la division et le modulo. Par exemple 42/10 = 4, le premier ; et 42%10 = 2 le deuxième.
Donc la condition de vérification qui en découle devient :
Si T[i]/10 = T[i+1]%10 (ou inversement : la division pour le i+1ème, et le modulo pour le ième).
Par rapport à ton petit algo, je rectifierais affiche ("suite correcte. " ); qui n'est pas vraiment exact, ce devrait être "suite localement correcte" puisque ce n'est qu'entre les 2 dominos testés.
Par contre j'y ajouterais un booléen (ou un entier 0/1 faisant office de booléen si par la suite tu codes ça dans un langage qui n'a pas de type booléen) : initialisé à VRAI (on suppose que la suite de domino est bonne), et dans la boucle 'tant que' on vérifie tant que la suite est bonne déjà (parce que dès qu'on trouve qu'elle n'est pas bonne ça ne sert à rien de chercher à vérifier la suite de la chaîne), et ensuite dans la condition, quand la suite n'est localement pas bonne, on le passe à FAUX (car si c'est localement faux, c'est entièrement faux).
Avec ma solution, par exemple en base 10. Pour retrouver les 2 nombres tu n'as qu'à utiliser la division et le modulo. Par exemple 42/10 = 4, le premier ; et 42%10 = 2 le deuxième.
Donc la condition de vérification qui en découle devient :
Si T[i]/10 = T[i+1]%10 (ou inversement : la division pour le i+1ème, et le modulo pour le ième).
Par rapport à ton petit algo, je rectifierais affiche ("suite correcte. " ); qui n'est pas vraiment exact, ce devrait être "suite localement correcte" puisque ce n'est qu'entre les 2 dominos testés.
Par contre j'y ajouterais un booléen (ou un entier 0/1 faisant office de booléen si par la suite tu codes ça dans un langage qui n'a pas de type booléen) : initialisé à VRAI (on suppose que la suite de domino est bonne), et dans la boucle 'tant que' on vérifie tant que la suite est bonne déjà (parce que dès qu'on trouve qu'elle n'est pas bonne ça ne sert à rien de chercher à vérifier la suite de la chaîne), et ensuite dans la condition, quand la suite n'est localement pas bonne, on le passe à FAUX (car si c'est localement faux, c'est entièrement faux).
bonsoir bizu53,
tout d'abord je tiens a te remercie d'avoir pris de ton temps pour me répondre. j'aurai jamais pensé à ta solution. énorme. en effet cela me parait plus que correcte. et en plus il ne y aura pas de collision.
cependant je me demandais avec ta solution comment peut on vérifier si la suite de pions est correspondante et valide (la régle du jeu de domino que j'ai expliquer dans le 1er post ) . j'ai penser a stocker une suite de N pions dans un tableau. puis de vérifier si la case i+1=case i +2(on part de l'indice 0).
ex:
soit une suite de N pions (N constant) stocker dans un Tableau d'entier T.
soit i j;tailleT
Début:
Tant que(i<tailleT) faire
{
si T[i+1] =T[i+2];
affiche ("suite correcte. " );
sinon
affiche (suite incorrecte)
fin si
Fin Tan que
Fin
}
*****
Qu'en pense tu?
merci encore et bon week end.
tout d'abord je tiens a te remercie d'avoir pris de ton temps pour me répondre. j'aurai jamais pensé à ta solution. énorme. en effet cela me parait plus que correcte. et en plus il ne y aura pas de collision.
cependant je me demandais avec ta solution comment peut on vérifier si la suite de pions est correspondante et valide (la régle du jeu de domino que j'ai expliquer dans le 1er post ) . j'ai penser a stocker une suite de N pions dans un tableau. puis de vérifier si la case i+1=case i +2(on part de l'indice 0).
ex:
soit une suite de N pions (N constant) stocker dans un Tableau d'entier T.
soit i j;tailleT
Début:
Tant que(i<tailleT) faire
{
si T[i+1] =T[i+2];
affiche ("suite correcte. " );
sinon
affiche (suite incorrecte)
fin si
Fin Tan que
Fin
}
*****
Qu'en pense tu?
merci encore et bon week end.