π
<-
Chat plein-écran
[^]

Des chiffres!! :D

Pour le TI-Basic sur Nspire

Re: Des chiffres!! :D

Message non lude Excale » 02 Mai 2012, 16:45

Effectivement c'est un peu plus clair, je regarde comment c'est fait :).
Avatar de l’utilisateur
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 3.9%
 
Messages: 2955
Images: 3
Inscription: 10 Sep 2010, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Des chiffres!! :D

Message non lude Bisam » 03 Mai 2012, 15:56

J'ai finalement écrit un algo directement sur Nspire... et ça fonctionne pas mal, sans être trop lent.
Si on lui demande de renvoyer la première solution trouvée, cela lui prend en général moins de 5 secondes... mais jusqu'à 1min30 s'il n'y a pas de solution et autant si on lui demande TOUTES les solutions (qui bien souvent se répètent une multitude de fois dans un ordre différent).

Je vous tape ce que j'ai fait (je n'ai pas de quoi transférer le .tns ici... et c'est pédagogique également)
Code: Tout sélectionner
{"*","+","-","/"}->op

Define cherche_1(total, nombres)
Func
cherche(total, nombres,{ },false)
Endfunc

Define cherche_tout(total, nombres)
Func
cherche(total,nombres,{ },true)
Endfunc

Define cherche(total, nombres, etapes, all)
Func
Local n,i,j,k,l,p,n1,n2,tmp,st,calc,trouve
dim(nombres)->n
false->trouve
For i,1,n
  If nombres[i]=total Then
    Disp etapes
    Return true
  EndIf
EndFor
1->i
While i<=n and when(all, true, not trouve)
  i+1->j
  While j<=n and when(all, true, not trouve)
    max(nombres[i],nombres[j])->n1
    min(nombres[i],nombres[j])->n2
    If n2=1 then
      2->k
      3->p
    Else
      1->k
      4->p
    EndIf
    While k<=p and when(all, true, not trouve)
      string(n1)&op[k]&string(n2)->st
      expr(st)->calc
      If calc<>0 and mod(calc,1)=0 Then
         left(nombres,j-1)->tmp
         calc->nombres[i]
         cherche(total,augment(tmp,mid(nombres,j+1),augment(etapes,{st&"="&string(calc)}))->trouve
      EndIf
      k+1->k
    EndWhile
    j+1->j
  EndWhile
  i+1->i
EndWhile
Return trouve
EndFunc
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

Précédente

Retourner vers Nspire-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 42 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.
1105 utilisateurs:
>1085 invités
>15 membres
>5 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)