Page 1 sur 1
Problème avec subsr
Publié : mar. nov. 12, 2013 10:16 pm
par yvand
Bonsoir,
Je viens de découvrir un bug (ou ce qui ressemble à un bug selon moi) gênant dans xcas avec substr.
Exemple minimal :
n:= 1;
subst(n,n=10)
Si on n'affecte pas n avant de faire subst aucun problème...
Re: Problème avec subsr
Publié : mer. nov. 13, 2013 6:07 am
par parisse
C'est plutot une demande d'amélioration qu'un bug. Actuellement subst n'auto-quote pas ses arguments, on pourrait en effet faire en sorte que la ou les variables de remplacement soient auto-quotées lors de l'évaluation du 1er argument ... mais c'est assez pénible à réaliser. On verra quand j'aurai un peu de temps!
Re: Problème avec subsr
Publié : mer. nov. 13, 2013 2:22 pm
par yvand
Personnellement, je trouve ce comportement particulièrement troublant
Pour la petite histoire, en fait je tentais de résoudre un exercice pour TS, où il faut dire si n^2+n+41 est un nombre premier (pour n entier naturel).
J'ai fait un :
pour n de 0 jusque 50 faire
m := n^2+n+41;
afficher("n="+n+", "+isprime(m));
fpour;
Le premier entier n pour lequel n^2+n+41 n'est pas premier est n=40.
Naturellement je voulais calculer la valeur n^2+n+41 pour n=40, puis déterminer sa factorisation (via ifactor), et là le nombre obtenu (avec subst(n^2+n+41,n=40)) était premier... En fait n=50 pour subst...
J'ai mis du temps avant de comprendre que le problème venait du fait que subst ne faisant ce que je voulais qu'il fasse...
Re: Problème avec subsr
Publié : mer. nov. 13, 2013 2:57 pm
par parisse
Je vais deja generer un warning, ca devrait au moins eviter de perdre trop de temps a chercher d'ou vient le probleme.