π
<-
Chat plein-écran
[^]

Problème avec N-Queen

Programmation et implémentation d'algorithmes.

Problème avec N-Queen

Message non lude absolem » 06 Juil 2021, 00:34

En regardant:
https://www.youtube.com/watch?v=MnXlh1S1usM
, le youtuber présent un petit programme qu'il utilise pour comparer les performances entre les calculatrices...

Il donne même la source du petit programme pour toutes les calculatrices de toute marque confondue...
https://www.hpmuseum.org/cgi-sys/cgiwra ... i?read=700

Je trouve le sujet intéressent et je copie le dit programme dans ma ti-200,
Petit problème; quand je l'exécute la calculatrice me donne un message : Dimension ...

Quelqu'un a une idée... Merci !

Image

Code: Tout sélectionner
queen()
Prgm
   Local a,n,r,s,t,x,y
    8→r
   newlist(r)→a
   For n,1,10
     0→s
     0→x
     Loop
       x+1→x
       r→a[x]
       Loop
         s+1→s
         x→y
         While y>1
           y-1→y
           a[x]-a[y]→t
           If t=0 or x-y=abs(t) Then
             0→y
             a[x]-1→a[x]
             While a[x]=0
               x-1→x
               a[x]-1→a[x]
             EndWhile
           EndIf
         EndWhile
         If y=1
           Exit
       EndLoop
       If x=r
         Exit
     EndLoop
   EndFor
   Disp s
EndPrgm
Avatar de l’utilisateur
absolem
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 66.7%
 
Messages: 4
Inscription: 13 Jan 2019, 21:29
Localisation: Montréal
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Problème avec N-Queen

Message non lude Bisam » 06 Juil 2021, 09:13

Il ne semble y avoir aucun problème dans ce programme. Il est probable que tu aies simplement mal copié. En particulier, il devrait commencer par un Define queen()=Prgm.
On peut même facilement l'améliorer en enlevant la ligne 8→r et remplacer la ligne Local a,n,r,s,t,x,y par Local a,n,s,t,x,y et enfin ajouter r en paramètre dans la définition Define queen(r)=Prgm.
Ainsi, on peut avoir le nombre de solutions en fonction de la taille r du plateau.


Peux-tu envoyer une photo ou capture d'écran du début de ton programme ou encore de l'endroit où te renvoie l'erreur lorsque tu cliques sur
Enter
?
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.5%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Problème avec N-Queen

Message non lude rentech7289 » 16 Aoû 2021, 16:37

Bonjour,
Après vérification, les instructions sont exactes. Le problème est l'indentation qui n'est pas la même mais ne devrait pas poser de problème s'agissant de TI-basic. Ici Define ne sert à rien, il s'agit d'une capture de l'éditeur de programme. Par contre, il y a un problème avec la liste des calculatrices concernées, copier-collé depuis le lien indiqué:
TI-89, TI-89 Titanium, TI-92+, TI-Nspire, TI-Nspire CAS, TI-Nspire CX II CAS
Pas de Voyage 200! Ici, le message d'erreur (errornum = 230 sur TI-92) fait penser à un dépassement de l'indice d'une matrice. Appuyer sur enter envoie directement à la ligne de l'erreur; ça pourrait aider, mais j'ai un doute à cause de la liste...
Avatar de l’utilisateur
rentech7289
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Prochain niv.: 66.4%
 
Messages: 107
Inscription: 16 Aoû 2021, 02:40
Localisation: Lorraine luxembourgeoise
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Problème avec N-Queen

Message non lude NiTROGEN » 02 Mar 2022, 11:19

absolem a écrit:
Code: Tout sélectionner
queen()

[...]

             While a[x]=0
               x-1→x
               a[x]-1→a[x]
             EndWhile
   [...]





J'ai juste parcouru quelques secondes le code et il faudrait vérifier que l'on ne fasse pas des tests avec un indice qui vaut 0 à certains moments qui renverrait alors une erreur de dimension. Vu l'erreur c'est qu'à un moment il y a un test sur un indice < 1 ou > r obviously.

Dans la partie au-dessus, par exemple si a[1] vaut 0 (je ne sais pas si c'est possible) ça plante car on fait une action ensuite sur a[x-1] i.e. a[0] qui n'existe pas.


Par ailleurs la manière dont c'est codé me fait penser (j'ai peut être tord) que c'est pas très optimisé/canonique et du coup plus difficile de voir en quelques secondes s'il y a un problème sur les indices ou autres.
Avatar de l’utilisateur
NiTROGEN
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 16.8%
 
Messages: 43
Images: 0
Inscription: 12 Mai 2015, 16:19
Localisation: Wastelands
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: AGROECOLOGiST


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 13 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2041 utilisateurs:
>2021 invités
>16 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)