cs_baous
Messages postés6Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention14 avril 2006
-
14 avril 2006 à 07:15
LeCamargay
Messages postés2Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention 4 mai 2015
-
11 déc. 2010 à 14:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
LeCamargay
Messages postés2Date d'inscriptionsamedi 11 décembre 2010StatutMembreDernière intervention 4 mai 2015 11 déc. 2010 à 14:24
Bonjour,
Est-il possible de résoudre un Sudoku sur 12 lignes et colonnes ?
Toutes les solutions trouvées s'arrêtent à 9 !
Le problème à résoudre ne contient pas de carrés intermédiaires.
Merci de votre réponse.
Cordialement,
Philippe
spraf
Messages postés3Date d'inscriptionmardi 28 mars 2006StatutMembreDernière intervention18 avril 2006 18 avril 2006 à 19:33
Merci. J'ai essayé de faire une résolution "intelligente"
Pour mon problème de grilles qui plantent le programme, je suis dessus, mais j'ai moins de temps libre. Je vais rajouter une variable appelée serie_aleatoire, qui sera incrementee a chaque usage de la procédure aléatoire, ce qui permettra de remonter au dela du dernier "choix", un peu comme dans une arborescence.
Ex: le programme choisit au hasard la valeur 2 pour une case qui a la possibilité 2 et 9 (la bonne est 9, mais ca on le sait pas;-)). A ce moment, serie_aleatoire=1. Ensuite, il continue un moment, sans que la grille paraisse fausse car on n'a pas de doublon; on est toujours en serie_aleatoire=1.Puis il rebloque et doit re-choisir un chiffre au hasard. On passe en serie_aleatoire=2. Puis on continue a résoudre la grille et là on imagine qu'on se retrouve avec une erreur. Ca veut dire que notre dernier choix aléatoire (mais peut etre les precedents) a été faux. On remonte donc en arriere jusqu'au premier mouvement où serie_aleatoire=2, et on teste l'autre valeur. Par contre, on met pour tous les mouvements ultérieurs serie_aleatoire=1, car si ca plante (ce qui arrivera forcement car notre premier choix aléatoire est faux) on devra revenir jusqu'au mouvement ou serie_aleatoire passe à 1 (donc ici le premier mouvement).
Ai je été clair ??
cs_jadot
Messages postés21Date d'inscriptionmardi 31 août 2004StatutMembreDernière intervention10 septembre 2007 18 avril 2006 à 09:37
Bonjour,
Super idée !
spraf
Messages postés3Date d'inscriptionmardi 28 mars 2006StatutMembreDernière intervention18 avril 2006 17 avril 2006 à 17:07
Regarde le code avec VB Editor (ALT+F11)
Tout est expliqué.
En gros, le programme cherche d'abord si une case n'a qu'un seul chiffre possible.
Ensuite, il analyse chaque zone (ligne, colonne, carre) pour voir si une possibilité n'apparait qu'une seule fois.
A chaque fois qu'il a trouvé de nouvelle valeurs, il supprime dans les cases concernees cette possibilité.
Et ainsi de suite.
cs_osta
Messages postés27Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention10 octobre 2006 17 avril 2006 à 10:48
Pourrai-t-on savoir la méthode de résolution, si possible l'algorithme?
Osta
mtyty
Messages postés3Date d'inscriptiondimanche 29 décembre 2002StatutMembreDernière intervention17 avril 2006 17 avril 2006 à 09:47
Oup !!!!!!!!
Désolé c'est ma faute ,je rentre des espaces à la place de mettre les cellules vides
GS.
mtyty
Messages postés3Date d'inscriptiondimanche 29 décembre 2002StatutMembreDernière intervention17 avril 2006 17 avril 2006 à 09:30
Bonjour,
Excel 2003
Sur toutes les grilles essayées j'ai l'erreur suivante
"erreur d'execution 13"
"incompatibilité de type"
Et le debuger pointe sur la ligne suivante
dans Public Sub initialise_variables_tableaux()
tableau_trouves(i, j, k, l) = Sheets(1).Cells(i * 3 - 2 + k - 1, j * 3 - 2 + l - 1)
GS.
cs_JLN
Messages postés371Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention17 juin 2013 17 avril 2006 à 08:50
Je vais m'y pencher rien que pour le fun...
Bonne prog,
@+ JLN
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 14 avril 2006 à 09:30
Bonjour
Interessant !
Heu ... ta boîte, ils embauchent pas, par hasard ?
cs_baous
Messages postés6Date d'inscriptionmercredi 1 juin 2005StatutMembreDernière intervention14 avril 2006 14 avril 2006 à 07:15
11 déc. 2010 à 14:24
Est-il possible de résoudre un Sudoku sur 12 lignes et colonnes ?
Toutes les solutions trouvées s'arrêtent à 9 !
Le problème à résoudre ne contient pas de carrés intermédiaires.
Merci de votre réponse.
Cordialement,
Philippe
18 avril 2006 à 19:33
Pour mon problème de grilles qui plantent le programme, je suis dessus, mais j'ai moins de temps libre. Je vais rajouter une variable appelée serie_aleatoire, qui sera incrementee a chaque usage de la procédure aléatoire, ce qui permettra de remonter au dela du dernier "choix", un peu comme dans une arborescence.
Ex: le programme choisit au hasard la valeur 2 pour une case qui a la possibilité 2 et 9 (la bonne est 9, mais ca on le sait pas;-)). A ce moment, serie_aleatoire=1. Ensuite, il continue un moment, sans que la grille paraisse fausse car on n'a pas de doublon; on est toujours en serie_aleatoire=1.Puis il rebloque et doit re-choisir un chiffre au hasard. On passe en serie_aleatoire=2. Puis on continue a résoudre la grille et là on imagine qu'on se retrouve avec une erreur. Ca veut dire que notre dernier choix aléatoire (mais peut etre les precedents) a été faux. On remonte donc en arriere jusqu'au premier mouvement où serie_aleatoire=2, et on teste l'autre valeur. Par contre, on met pour tous les mouvements ultérieurs serie_aleatoire=1, car si ca plante (ce qui arrivera forcement car notre premier choix aléatoire est faux) on devra revenir jusqu'au mouvement ou serie_aleatoire passe à 1 (donc ici le premier mouvement).
Ai je été clair ??
18 avril 2006 à 09:37
Super idée !
17 avril 2006 à 17:07
Tout est expliqué.
En gros, le programme cherche d'abord si une case n'a qu'un seul chiffre possible.
Ensuite, il analyse chaque zone (ligne, colonne, carre) pour voir si une possibilité n'apparait qu'une seule fois.
A chaque fois qu'il a trouvé de nouvelle valeurs, il supprime dans les cases concernees cette possibilité.
Et ainsi de suite.
17 avril 2006 à 10:48
Osta
17 avril 2006 à 09:47
Désolé c'est ma faute ,je rentre des espaces à la place de mettre les cellules vides
GS.
17 avril 2006 à 09:30
Excel 2003
Sur toutes les grilles essayées j'ai l'erreur suivante
"erreur d'execution 13"
"incompatibilité de type"
Et le debuger pointe sur la ligne suivante
dans Public Sub initialise_variables_tableaux()
tableau_trouves(i, j, k, l) = Sheets(1).Cells(i * 3 - 2 + k - 1, j * 3 - 2 + l - 1)
GS.
17 avril 2006 à 08:50
Bonne prog,
@+ JLN
14 avril 2006 à 09:30
Interessant !
Heu ... ta boîte, ils embauchent pas, par hasard ?
14 avril 2006 à 07:15