EULER ET LE CAVALIER SUR L' ECHIQUIER

Utilisateur anonyme - 10 août 2006 à 00:52
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007 - 20 sept. 2006 à 23:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39024-euler-et-le-cavalier-sur-l-echiquier

HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
20 sept. 2006 à 23:12
_DoOmy_

Merci : ce site est en effet très intéressant
_DoOmy_ Messages postés 15 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 17 septembre 2006
17 sept. 2006 à 15:19
pour des généralités sur le cavalier d'euler
http://www.recreomath.qc.ca/dict_cavalier.htm
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
2 sept. 2006 à 21:55
Merci WARNY pour ta réponse.
Je vais rechercher l'article en question dans ce magazine.
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
1 sept. 2006 à 08:56
C'etait dans l'excelent mais oh combien complexe hebdomadaire "la recherche", et je dois avouer que c'était assez chaud.
Le principe était de rajouter 2 dimensions (pour arriver à 4 dimensions) à la représentation de l'échiquier ce qui permettait d'éliminer certains tests récurrents.
Ceci dit, je dois avouer que l'explication complète était hors de portée et de ma comprehension et de ma mémoire.

Tout ce que j'ai retenu de l'article, c'est que pratiquement tous les problèmes d'echecs pouvaient être interprétés dans un espace fini à 4 dimensions.
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
31 août 2006 à 22:25
A l'attention de WARNY
Merci pour ton conseil, mais comme je l'ai dit le 18/08, j'ai pris finalement le parti de supprimer le compteur J.
Je serais très intéressé d'en savoir plus sur la solution du circuit fermé que tu évoques.
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
28 août 2006 à 18:19
Salut,
Déclare J en double, mais fait attention à la précision maximum pour rester en entier.
Le problème a trouvé une solution exacte pour le circuit fermé du cavalier (retour à la case départ) il y a 3 ans.
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
12 août 2006 à 18:50
A l'attention de Charles Racaud
Surtout ne sois pas désolé !
Tu me permets de progresser sérieusement.
Oubli réparé pour L et k.
Par contre pour J le type Long ne suffit pas, car cette variable dépasse très vite la capacité autorisée.
Finalement, j'ai supprimé ce compteur d'itérations qui n'était pas essentiel en fait.
Au résultat de toutes les corrections, l'algorithme tourne deux fois plus vite encore.
Encore merci et à suivre.

HCD
Utilisateur anonyme
12 août 2006 à 01:42
Désolé, c'est encore moi
T'as oublier de déclaré L et k
Et pouquoi garder J en varient ?
Integer: de -32767 à 32767
Long: de -2147483647 à 2147483647
Donc déclare J en long, je pense que c'est suffisant.
__
Kenji
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
12 août 2006 à 01:13
A l'attention de Charles Racaud & de DARKSIDIOUS
Encore merci à tous les deux.
Je pense avoir compris cette fois qu'il fallait déclarer les variables séparément.
Le fait est que la vitesse d'itération double presque.
A suivre
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2006 à 12:51
sinon aussi, en VB, pour faire des commentaires, utilise le caractère d'apostrophe, et évite le "rem" qui est plutôt hérité du BASIC.
Utilisateur anonyme
10 août 2006 à 12:27
Non, pas varient.
DKS ne t'as pas dit de toutes les déclaré en varient, il t?a dit que tu les avais déclaré en varient. (Pas de type = varient)
En integer serait donc effectivement plus appropriée.

De plus :
Dim N, I, P, x, J, µ As Integer
Seul µ est du type Integer, les autres de type Varient
Il faut faire Dim N As Integer, I As Integer, P As Integer, x As Integer, J As Integer, µ As Integer
Idem pour Dim T(1 To 8, 1 To 64), A(1 To 64), B(1 To 64), C(1 To 64), D(1 To 64),E(1 To 64) As Variant
HCD Messages postés 86 Date d'inscription jeudi 18 août 2005 Statut Membre Dernière intervention 20 février 2007
10 août 2006 à 12:17
A l'attention de Charles Racaud & de DARKSIDIOUS

Merci pour vos précieux commentaires.
J' ai modifié le code en déclarant toutes les variables comme étant de type "Variant".
(Comme toutes les valeurs sont des entiers, je pensais qu'il était mieux de choisir le type "Integer ???).
Pour la visualisation sur la feuille EXCEL, j'ai choisi une largeur de 1.17 pour les 64 premières colonnes : cela permet de voir les solutions s'afficher intégralement les unes après les autres.

HCD
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2006 à 08:31
Oui, surtout que dans :
Dim T(1 To 8, 1 To 64), A(1 To 64), B(1 To 64), C(1 To 64), D(1 To 64), E(1 To 64) As Integer
Seul E est de type Integer, les autres étant de type Variant => ca ralentit pas mal l'éxécution !
Utilisateur anonyme
10 août 2006 à 00:52
Salut,

Revois un peu la présentation de ton code.
Evite de mettre tout ton code sur une seule ligne. (Pour l'initialisation de tes valeurs ca va mais pas pour le reste)
T'as oublié de déclarer pas mal de variable. Ajoute un Option Explicit au début.

Voilà, donc pas tester, ni noté.

Kenji
Rejoignez-nous