Poster un nouveau sujet Poster une réponse
marche aléatoire sur tétraèdre
Auteur Message
monsalbert
Invité
Posté le : Mer 15 Avr 2015, 10:36   Citer 

bonjour,

problèmme: marche d'une puce sur un tétraèdre ABCD
simuler un parcours de 4 arêtes . déterminer le sommet ateint
simuler 30 promenades _déterminer les fréquences pour chaque sommet

l'auteur pour aider ( éliminer un sommet à chaque choix ) désigne les arêtes
AB et CD par 1
AC et DB Par 2 (arêtes opposées)
BC et AD par 3
Modeste en programmation, maladroit avec "If..end" je cherche en premier le motif de base, promenade à 4 arêtes.

L'essais choisi ( celui qui semble le plus naturel ) me force à travailler
"If..end"..
les résultats me laisse perplexe. ( 11 pour A,22 pour B,33 pour C,44 pour D sont
les sommets ) les sorties (1,2,3) les trajets ( avec entAleat )

Prompt P

If P= 11
entAleat (1,3)-> A
Disp A : Pause
If A = 1 : then
22 -> P : end
If A = 2 : then
33 -> P : end
If A= 3 : then
44 -> P : end
Disp P ¹



If P= 22
entAleat (1,3)-> B
Disp B : Pause
If B = 1 : then
11 -> P : end
If B = 2 : then
44 -> P : end
If B = 3 : then
33 -> P : end
Disp P


If P= 33
entAleat (1,3)-> C
Disp : Pause
If C = 1 : then
44 -> P : end
If C = 2 : then
11 -> P : end
If C= 3 : then
22 -> P : end
Disp P


If P= 44
entAleat (1,3)-> D
Disp : Pause
If D = 1 : then
33 -> P : end
If D = 2 : then
22-> P : end
If D= 3 : then
11 -> P : end
Disp P

des Disp et des pauses pour observation
J'espère que ma ligne est claire ..

Merci

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Dim 19 Avr 2015, 20:02   Citer 

Bonsoir,

J'ai du mal à comprendre à quoi correspondent D et P, et pourquoi tu dis "11 pour A,22 pour B,33 pour C,44 pour D" alors qu'avant tu parlais du codage des arrêtes...

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Lun 20 Avr 2015, 19:44   Citer 

bonsoir mathieu, heureux de te retrouver.

oui: j'ai appelé sommetA:11 sommetB:22 sommetC:33 sommetD: 44 P c'est la position( un sommet)
donc P=11 ou 22 ou 33 ou 44

la sortie de entAleat(1,3) ( qui fixe le sommet futur) initialement je l'avais appelé s puis méfiant j'ai appelé
entAleat(1,3) de A -> A
entAleat(1,3) de B -> B
entAleat(1,3) de C -> C
entAleat(1,3) de D -> D

ex: s'il est en P=11 (A); si entAleat sort 1 il va en P= 22( B)

oui j'ai pas été clair. Excuse moi.

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 29 Avr 2015, 11:28   Citer 

Bonjour,

Désolé pour le délai de réponse... moodforlove.gif

C'est bizarre d'appeler les sommets 11/22/33/44 plutôt que 1/2/3/4 je trouve crazy.gif

Pour le côté programmation:
_Numéroter les sommets "0, 1, 2, 3" pour A, B, C, D serait plus simple d'un point de vue algorithmique.
Ainsi, il suffirait de tirer un nombre entre 0 et 2, de rajouter 1 (resp 2) à la position si on a tiré 1 (resp 2), d'enlever 1 dans le cas contraire, puis de faire un modulo 4 pour récupérer la prochaine position.

_Ton programme est globalement correct, le seul problème étant l'utilisation des Then/End

Par exemple:

Code
If P= 11
entAleat (1,3)-> A
Disp A : Pause
If A = 1 : then
22 -> P : end
If A = 2 : then
33 -> P : end
If A= 3 : then
44 -> P : end
Disp P ¹


Je pense que ce que tu voulais faire, c'est : si elle est sur l’arrête A, on la déplace en le signalant.
Dans ce cas, il faut entourer le code par un Then/End suite au If P= 11.
Ensuite, Si le Then/End global était obligatoire à cause de la taille du bloc, au niveau de
Code
If A = 2 : then
33 -> P : end


C'est inutile de mettre Then/end s'il n'y a qu'une instruction éxécutée.

Ce qui nous donne finalement:

Code
If P=11
Then
entAleat (1,3)-> A
Pause A //Remplace un Disp A:Pause
If A = 1: 22 -> P
If A = 2: 33 -> P
If A = 3: 44 -> P
Disp P
End



Ensuite, tu peux sortir les "entAleat (1,3" des blocs, et utiliser à chaque fois la même variable (A par exemple), et donc aussi sortir son affichage. De même pour le Disp P, à sortir cette fois à la fin des blocs.

Ce qui nous donne finalement:

Code
Prompt P

entAleat(1,3-> A
Pause A

If P=11
Then
If A = 1: 22 -> P
If A = 2: 33 -> P
If A = 3: 44 -> P
End


If P=22
Then
If A = 1: 11 -> P
If A = 2: 33 -> P
If A = 3: 44 -> P
End


If P=33
Then
If A = 1: 11 -> P
If A = 2: 22 -> P
If A = 3: 44 -> P
End


If P=44
Then
If A = 1: 11 -> P
If A = 2: 22 -> P
If A = 3: 33 -> P
End

Disp P



Ensuite, on entoure le tout (sauf le Prompt P bien sur) avec une boucle for pour faire 4 trajets.
Et pour simuler le bon nombre de promenades, une autre boucle for qui englobe le tout (sauf le Prompt P là aussi) avec une liste pour stocker le sommet d'arrivée (divise P par 11 du coup pour obtenir un indice de liste cohérent).

J'espère que j'ai été clair, n'hésite pas à demander plus de précisions winkle.gif.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 30 Avr 2015, 13:01   Citer 

bonjour Mathieu,

bilan des essais:

- sommes nous bien d'accord dans If P=22 (puce en B)

pour If A = 2 :il faut lire 44 ->P puce en D
pour If A = 3 : il faut lire 33 -> P puce en C
avec ta notation

- essais avec un seul Disp P à la fin ne marche que pour P = 44 ( puce en D)
(en faisant démarrer Prompt de 11,22,33,44)

- essais avec un Disp à la fin de chaque sommet on obtient 4 réponses.
il semble qu'il garde P initial (de Prompt) en mémoire.

je suis resté à 1 seule marche ( pas de for )pour voir le détail

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 30 Avr 2015, 14:32   Citer 

J'ai raconté n'importe quoi désolé ^^
Exemple: on est en A.
On tire 3 on va en D.
Mais si coup on passe par la boucle du D !
Donc on se retrouve en C...

Pour remédier a ce pb, je te suggère de séparer le point d'arrivée du point de départ :


Code
Prompt P

entAleat(1,3-> A
Pause A

If P=11
Then
If A = 1: 22 -> Q
If A = 2: 33 -> Q
If A = 3: 44 -> Q
End


If P=22
Then
If A = 1: 11 -> Q
If A = 2: 33 -> Q
If A = 3: 44 -> Q
End


If P=33
Then
If A = 1: 11 -> Q
If A = 2: 22 -> Q
If A = 3: 44 -> Q
End


If P=44
Then
If A = 1: 11 -> Q
If A = 2: 22 -> Q
If A = 3: 33 -> Q
End

Q->P

Disp P



----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Ven 01 Mai 2015, 13:18   Citer 

bonjour Mathieu,

Là celà marche pour 1 saut de puce ( pas de for)

Mais si on introduit For (à 4 sauts pour parcourir l'ensemble), les essais donnent:

1er rentrée sur 11:
11(A=1)-> 22(bon)(A=3)-> 44 il sort 44(faux) avec P=11 pas avec le
nouveau P

2ème rentrée sur 22
22(A=3)-> 33(bon)(A=3)-> 33 (faux)prend 22 pas 33

22(A=1)-> 11(A=3)-> 33

elliminer les positions précédentes à chaque fois?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Sam 02 Mai 2015, 10:50   Citer 

Tu peux me montrer le code final stp ?
Tu as bien commencé la boucle après le prompt et le End après le Disp P ?

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Dim 03 Mai 2015, 0:00   Citer 

bonsoir Mathieu,

heureux!! c'est bon.
La cause de mes échecs? en faisant un copier-coller pour imprimer ton code je n'avais pas pris et évidemment sur la TI aussi

Q->P
Disp P (Le for était bien placé). )C'est surtout "Q->P"!! je ne comprenais
donc merci pour Q->P !

confirme moi: quand je fais 4 sauts ABCDC la TI fait bien 4 tours (4 fois le code)?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Dim 03 Mai 2015, 8:46   Citer 

Ok super happy.gif

Oui c'est ça, 1 saut = 1 tour

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Lun 04 Mai 2015, 10:47   Citer 

Voilà qui est acquis.

En revenant sur le 1er code envisagé ( pour travailler sur les " If..end") et aussi les obsrvations ( les Disp : suivant où on les place les résultats ne sont pas ceux attendus!! avant end ? aprés end? )

Rappel

Prompt P

If P = 11
then
entAleat (1,3) -> s
Pause s
If s = 1 : 22 -> P
If s = 2 : 33 -> P
if s = 3 : 44 -> P
Pause P
End

les 3 autres blocs (22,33, 44 ) absolument identiques.

- résultats sur les 4 entrées ( nous sommes d'accord : on n'aura pas le même nombre de résultats ? )

Il y a des résultats difficiles à expliquer (?)
blocs
11(s=1) -> 22(2) ->44(3)->11 BON
11(2) -> 33(2) ->11(2)-> 22 ???

22(1)->11(1) -> 33 ??

33(3) ->22(3) ->11 ??

enfin 44(2) -> 22 BON et 44(3) -> 11 ???

Sur la ligne les 4 blocs fonctionnent "en série"? le code revient en arrière?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Lun 04 Mai 2015, 13:10   Citer 

Le code ne peut pas revenir en arrière non...
L'erreur doit être autre par...
Pour les tests, tu as bien rajoute les then/end sur chaque bloc ce qui manquait au premier code ?

Sinon je ne vois pas du tout...

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Lun 04 Mai 2015, 18:55   Citer 

Dans ce dernier code les 4 "blocs" 11,22,33,44 sont exactement identiques à celui du P = 11 de mon message précédent.c

le code ne peut revenir en arrière: tu me rassures.Le code passe en revue les 4 blocs dans l'ordre et l'erreur est toujours sur le dernier bloc..

à suivre..

rq: comment s'appelle cette commande qui met en mémoire le dernier calcul? ANS?
existe t-elle sur la TI82 Stats.fr?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Lun 04 Mai 2015, 21:15   Citer 

En fait ça ne me paraît pas possible ce que tu me décris...
Je vois si j'ai le temps de tester ce soir pas sur...
Tu as bien tous les Then/End (4 au total), et un seul if p=11 ?

Tout calcul (de liste, nombre, Chaîne, matrice) dont tu peux stocker le résultat dans une variable avec sto -> (ce qui exclu les tests/arguments) a son résultat stockée dans Ans (Rép en français, 2nde cupsmiley.gif).

Ex:

Code

13
Disp Rép
Affiche 13

"test->chaine1
Disp Rép
Affiche "test

14-2->A
If A+2=786
5
Disp Rép
Affiche 12

Text(4-A,X4,sub(chaine1,1,6Z-B
Ne modifie pas Rep



La seule exeption que je connaisse est Pause, qui modifie Rép

Ex:

Code
1->A
Pause 3-A
Disp Rép
Affiche deux fois 2 (une fois la pause une fois le disp)

Alors que
1->A
Disp 3-A
Disp Rép
Affiche 2 puis 1



----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mar 05 Mai 2015, 16:28   Citer 

voici le code utilisé:

Prompt P

If P = 11
then
entAleat(1,3) -> s
Pause s
If s = 1 : 22 -> P
If s = 2 : 33 -> P
If s = 3 : 44 -> P
pause P
end

If P = 22
then
entAleat(1,3) -> s
Pause s
If s = 1 : 11 -> P
If s = 2 : 44 -> P
If s = 3 : 33 -> P
pause P
end

If P = 33
then
entAleat(1,3) -> s
Pause s
If s = 1 : 44 -> P
If s = 2 : 11 -> P
If s = 3 : 22 -> P
pause P
end


If P = 44
then
entAleat(1,3) -> s
Pause s
If s = 1 : 33 -> P
If s = 2 : 22 -> P
If s = 3 : 11 -> P
pause P
end

voilà le code expérimenté précédemment.
Je l'ai effacé et recommencé : il me donne des résultats tout à fait différents
que j'ai peine à ordonner..

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 05 Mai 2015, 20:31   Citer 

Les nouveaux résultats donnent ils aussi l'impression de revenir en arrière ?

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 05 Mai 2015, 20:45   Citer 

Mes tests ne montrent pas de tels problèmes...

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mer 06 Mai 2015, 15:32   Citer 

j'ai refait le code (toujours le même puisque à l'écriture il est correcte )

des résultats plus cohérents semble t-il.Voici une liste tous partant de P = 11

11(3) -> 44(1) -> 33 normal -33 en sortie
11(2) -> 33(1) -> 11 ?..44 normal
11(1) -> 22(3) -> 33(1) -> 44(3) -> 11 top
11(3) -> 44(2) -> 22 normal
11(2) -> 33(2) -> 11 se bloque
11(2) -> 33(3) -> 22 se bloque
11(3) -> 44(2) -> 22 normal 22 en sortie
11(2) -> 33(1) -> 44(3) -> 11 normal
11(1) -> 22(2) -> 44(2) -> 22 normal

es_tu d'accord?

Rq:
quand on écrit un code si la proposition est longue la TI va à la ligne mais ne met pas les 2 points ,on laisse ou il faut mettre les 2 points?

Ici on a étudié le code de base. Si on veut une ballade de 30 sauts, il faudra For, celà va être "coton",le compteur C+1 -> C va concerner toutes les lignes?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 06 Mai 2015, 21:03   Citer 

Oui ces résultats sont cohérents avec le code.

Pour ta rq: les ":" marquent non pas un retour a la ligne mais un début d'instruction. Il ne faut pas en rajouter au milieu lorsque la ti va a la ligne (il s'agit juste d'un affichage).

On est bien d'accord que ce code n'est pas le bon, que celui qui est correct est celui avec la variable intermédiaire Q ?
Je ne comprends pas ta question a propos du compteur.
Si tu as une boucle for, il est incrémenté a chaque début de ligne.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 07 Mai 2015, 9:16   Citer 

* heureux que la lecture des résultats soit correcte!..je prends tout ce que je peux!

1 - à propos des " : " merci! , voilà une source d'erreur possible que j'ai dû commettre.

2 - oui car je me demandais avec ce code s'il fallait For ( où on sait le nombre à mettre ) ou While (où on sait certes le nombre total de sauts mais pas le nombre de sauts par tour du code).

3 - " On est bien d'accord que ce code n'est pas le bon, que celui qui est correct est celui avec la variable intermédiaire Q ? " dis-tu.
Pourquoi dis-tu celà,je ne comprends pas. Le 2ème code marche aussi. Bien sûr on ne pourra utiliser le For.( je n'ai pas fait d'essais à cet instant)

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 07 Mai 2015, 14:00   Citer 

Ce code justement n'est pas prévisible :trop dur de gérer le nombre d'arêtes parcourues.
L'autre code est plus simple de ce point de vue: il suffit de mettre une boucle for.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 07 Mai 2015, 20:18   Citer 

D'accord , si c'est à cause de la complexité des trajets ( voir les résultats des essais).
Merci Mathieu pour ce travail. 2 points de vue c'est mieux.Beaucoup de choses ont été remise en place.

pour conclure, peux tu me montrer le code que toi tu ferais avec tes choix. Si tu fais des optimisations ( je me souviens de celles que toi et linkakro aviez réalisées sur certains codes.Il y avait un coté esthétique,c'était super.) explique.
merci encore.

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 07 Mai 2015, 21:52   Citer 

Il n'est pas non plus impossible de le faire. Je ne suis pas sur que les résultats soient plus rapide par contre...
2 choses a prendre en compte: comme tu l'as dit il faut faire un while, avec un compteur, qui s'incremente a l'intérieur de chacun des 4 blocs If.
Il faut aussi faire attention au fait que on peut faire le dernier trajet en partant du point A. On est alors sur de faire un trajet en trop (puisque les autres blocs suivent). Une solution serait de rajouter un "If P=22 and C!=T" avec T le nombre de trajets voulus et C le compteur des trajets. (de même pour 33 et 44.

Pour vraiment optimiser je prendrai un point de vue un peu différent.
J'associrai:
0 a A
1 a B
2 a C
3 a D
Plus précisément, j'utilise les modulo :
Si le nombre est congru a 0 modulo 4, on est en A. Idem pour congru a 1 B etc.
Je tire un nb aléatoire entre 1 et 3 qui correspond au déplacement.
Donc en rajoutant le nombre tire a la position, en considérant les modulos, je change bien de sommet avec equiprobabilite de tomber sur les 3 autres.
Je fais ceci le nb de fois voulus.
Puis il me suffit de regarder modulo 4 (4partDec(.25P)) pour avoir la position finale.


Code
Prompt P
For(A,1,X //X le nb de trajets par expérience
P+entAleat(1,3->P
//Disp 4partDec(.25P //optionnel, si tu veux suivre l'évolution
End
Disp 4partDec(.25P


On peut même les tirer tous d'un coup en passant un 3e argument a entAleat: le nombre de nombres aléatoire, le résultat est alors une liste, il suffit de sommer.
Ex: entAleat(1,5,3 peut renvoyer {1,4,4,3,2} par exemple.

On obtient :

Code
Prompt P
Disp 4partDec(.25(P+somme(entAleat(1,3,X


Mais on ne peut plus suivre le parcourt... Juste le résultat final.

Ensuite pour faire N fois l'expérience (une expérience = X trajets a partir du même point de départ.
J exploite la fonction seq)(suite en français) qui a la syntaxe :
suite(expr,var,depart,fin[,pas]
Qui construit une liste avec, pour le i ème terme, le résultat du calcul de expr après avoir incrémenté la variable var de pas, et ce tant que var<fin
Ex: suite(X^2,X,1,4
Renvoi:
{1,4,9,16}

Ici, j'ai juste besoin de faire N fois le même calcul (mais qui renvoi des valeurs différentes grâce aux fonctions pseudo aléatoires).
Ce qui donne :

Code
Prompt P
Disp suite(4partDec(.25(P+somme(entAleat(1,3,X))),A,1,N


Je peux aussi sortir certains calculs de la fonction suite (on peut multiplier une liste par un entier, additionner sans pb):

Code
Prompt P
Dsip 4partDec(.25(P+suite(somme(entAleat(1,3,X)),A,1,N


Ça économise des parenthèses, je ne sais pas ce qui est le plus rapide...

Voili voilou, heureux d'avoir pu t'aider happy.gif
Si tu as besoin de précisions sur certains points n'hésite pas bien sur.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Lun 11 Mai 2015, 19:19   Citer 

Quand je suis rentré hier soir et que j'ai vu ton message j'ai pris un coup au moral! c'était de l'hébreu!..les congruences!! celà faisait un moment..
J'ai revue un peu la question,il semble que celà aille mieux.

Je me concentrerai uniquement sur le 1er code de ton message ( sur le nouvel aperçu je ne suis pas déçu!!)

ai-je bien compris:

- ton Disp donne le sommet obtenu à chaque saut
- j'ai ajouté un Pause P

2 essais donnent(X = 4 )

départ 0(A)
ton Disp: 3, 2, 3, 0
pause P :3, 6, 7, 8
ma lecture D, C, D, A (je tire mes résultats aprés calculs, honnètement!)

départ 1
ton Disp:0, 1, 0, 1
pause P: 4, 5, 8, 9
soit A, B, A, B ( 4/4 reste 0 , 5/4 reste 1 , 8/4 reste 0)

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Lun 11 Mai 2015, 21:39   Citer 

Ah crazy.gif
Je l'ai fait cet année (enfin on l'avait introduit de manière non rigoureuse l'an passé) c'est pour ça que j'ai pensé a faire comme ça.

Oui c'est exactement ce que tu dis.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mar 12 Mai 2015, 19:28   Citer 

Je suis vraiment très satisfait.Ce dernier code est superbe. Je ne regrette pas les révisions forcées sur modulo et congruences!.. Bien sûr pour les élèves ce sera celui à 1 entAleat que je prendrai. Il est parfait.

Le code suivant:
" Disp 4partDec(.25(P+somme(entAleat(1,3,X "

tu fais la somme des X valeurs que donne entAléat ?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 12 Mai 2015, 21:28   Citer 

Je suis content que ça te convienne happy.gif.

Oui c'est exactement ça, je tire tous les nombres aléatoires d'un coup et je les sommes. Ça me donne le déplacement total.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
monsalbert
Invité
Posté le : Ven 15 Mai 2015, 19:36   Citer 

- la commande " somme " se trouve -t-elle dans une rubrique de la face avant ou est-on obligé d'aller dans Catalogue et comme le " s " est à la fin...Je ne l'ai pas trouvée dans les rubriques.

- je te soumets toujours , de principe, mes essais.
Ayant ajouté un Disp pour P; voici un essais ( but: remonter à sortie de entAléat(1,3 )

départ: 1, X= 7

positions sorties: 1, 0, 3, 0, 3, 2, 3
P : 5, 8, 11, 12, 15, 18, 19
entAléat: 2, 3, 3, 1, 3, 3, 1

Je reviendrai sur le passage à N expériences où je suis dans le 'cosmos "..

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 15 Mai 2015, 23:26   Citer 

La commande somme est dans le menu des listes.
Je te dis la combinaison exacte des que j'ai une calto sous la main.

Pour le catalogue: appuyer sur une touche permet d'aller directement aux commandes commençant par la lettre de la touche.

Je suis d'accord avec tes tests, sauf le début de l'expérience que je ne comprends pas... Tu commences au sommet 1? Pourquoi le premier nombre aléatoire serait 2?

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mar 19 Mai 2015, 0:45   Citer 

Oui il y a un "truc".

Re-essais

P = 1
N = 7

position en sortie: 2, 1, 0, 3, 0, 1, 0
P: 2, 5, 8, 11, 12, 13, 16
entAléat: 1,3, 3, 3, 1, 1, 3

quand au 2 ème code (avec somme(entAléat(1,3,7) reviendrait avec le même départ à 1 et les même entAléat( supposons):
somme= 1+3+3+3+1+1+3= 15 donc position de fin: ( 15+ 1 du départ)*1/4 donne
position finale: 0 comme la liste de sortie. C'est pourquoi il donnerais que la position finale.
Ce que demandent d'ailleurs certain éxos ( Proba d'arrivée sur chaque sommet)

D'accord cette fois?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 19 Mai 2015, 20:56   Citer 

Oui c'est l'idée.
Les tests semblent cohérents oui.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 21 Mai 2015, 19:23   Citer 

concernant le dernier code:

la commande suite( exp, varia,déb, fin,"pas" est claire

sur le dernier code:


Disp suite(4partDec(.25(P+somme(entAleat(1,3,X))),A,1,N

qui est A?..P non? et N? sur la plan de l'experience

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 21 Mai 2015, 22:51   Citer 

N est le nombre d'expériences a réaliser.
A correspond, en terme d equivalent dans une boucle, au numero de l'expérience en cours (il n'influe donc pas sur l'expérience).
P est fixé comme le sommet de départ pour toutes les N expériences.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Mer 27 Mai 2015, 18:36   Citer 

bonjour mathieu,

je suis désolé, je coince.

en comparant tes codes:
suite(expr,var,depart,fin[,pas]

suite(X^2,X,1,4
{1,4,9,16}4

Code
Prompt P
Disp suite(4partDec(.25(P+somme(entAleat(1,3,X))),A,1,N


- par analogie X représente le nombre de sauts pour un parcours

- 4partDec(.25(P+somme(entAleat(1,3,X))), représente expr. (X^2 de ton ex.)

- mais A ?, 1( c'est quoi?), N. Dans les essais en mettant des nombres, la TI affichait( argument)

tu dis :"N est le nombre d'expériences a réaliser." le code donnerait les sommets d'arrivée de plusieurs parcours de même nombre de saut (X)?


Ai-je compris: avec "somme(entAleat(1,3,X))),"nous obtenons juste le dernier sommet d'un parcours?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 27 Mai 2015, 21:05   Citer 

Sommes nous d'accord sur :
Une expérience: parcourt de X arretes, avec pour resultat le sommet d'arrivée.
Du coup on veut effectuer N fois cette expérience, en partant a chaque fois du même sommet.

Ainsi :
4partDec(.25(P+somme(entAleat(1,3,X)))
Realise une expérience, a partir du sommet P, sans modifier les données.

suite(expr,A,debut,fin[,incrément=1]
Permet de realiser une suite dont chaque terme est évalué pour une valeur de A differente (en la faisant varier de debut a fin, selon l incrément si indiqué, 1 par défaut).

Si expr est indépendant de A:
suite(expr,A,1,N
Permet de créer une liste de N termes dont tous les termes vaudront l évaluation de expr.
Dans un cas standard, ça donne une liste de N fois le meme nombre.

Dans notre cas, on a de l aleatoire, donc la valeur prise par expr varie, quand bien même elle ne depend pas réellement de A.
Ainsi,expr(4partDec(.25(P+somme(entAleat(1,3,X))),A,N
Permet de realiser N fois l expérience, et de renvoyer le résultat sous forme de liste.

A ne signifie rien de concret (si tu veux c'est le compteur qui permet de savoir le numéro de l expérience en cours, comme dans une boucle for qui realiserait les expériences). Elle est muette, puisque le résultat de l expérience ne depend pas de son numéro.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Jeu 28 Mai 2015, 19:31   Citer 

Je décompose ton message:

1 - à ta question
Sommes nous d'accord sur :
Une expérience: parcourt de X arêtes, avec pour résultat le sommet d'arrivée.
Du coup on veut effectuer N fois cette expérience, en partant a chaque fois du même sommet.

Ainsi :
4partDec(.25(P+somme(entAleat(1,3,X)))
Realise une expérience, a partir du sommet P, sans modifier les données.

D'accord MAIS " sans modifier les données" la seule donnée c'est P le sommet de départ?

2 - Si expr est indépendant de A:
suite(expr,A,1,N
Permet de créer une liste de N termes dont tous les termes vaudront l évaluation de expr.
Dans un cas standard, ça donne une liste de N fois le même nombre.

des essais avec le même argument (N= 5): TI (refuse l' argument)

- essais (analogie) pour voir:
suite(x^2, A, 1, 3 donne (4, 4, 4 ) A varie ? comment expliques-tu 3 fois 4 ?
3 termes d'accord ( N=3)

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Jeu 28 Mai 2015, 21:16   Citer 

1. Les données sont P, X et N.

2.TI refuse l argument ? Cad?

3. Pour suite(x^2,A,1,3
X^2 est une expression indépendante de A.
Il faudrait: faire varier X: suite(X^2,X,1,3
Ou utiliser A: suite(A^2,A,1,3

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Ven 29 Mai 2015, 19:17   Citer 

justement sur TI le code

Prompt P
Disp suite(4partDec(.25(P+somme(entAleat(1,3,X))),A,1,N
avec par ex. X=5 une ballade à 5 sauts et N= 5 ballades

TI affiche ERR: ARG

par contre avec son "cousin":

Prompt P
Dsip 4partDec(.25(P+suite(somme(entAleat(1,3,X)),A,1,N (X et N=5)

c'est bon. On obttient une liste de 5 chiffres qui sont - nous sommes bien d'accord, pour les 2 codes - les 5 arrivées de 5 ballades de 5 sauts?

Donc reste le 1er code qu'en penses-tu? problème d'argument?

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 29 Mai 2015, 20:27   Citer 

Zut il manque une parenthèse, autant pour moi.
suite(4partDec(.25(P+somme(entAleat(1,3,X)))),A,1,N

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
monsalbert
Invité
Posté le : Sam 30 Mai 2015, 17:54   Citer 

Enfin tout est clair mais cette erreur m'a permis de mieux comprendre les choses .J'en ai fait des essais!! mais tous était dirigés vers les arguments de
suite( x^2, x,1, 5) ou suite (x^2,A,1,5 et suite( "notre fct Disp",A,1,5.

Mathieu,bilan impeccable. Tu as fait tout ce que je souhaitais . Mis au point des 2 premiers codes et ensuite ballade dans les optimisations et quelle ballade: plus d'une page traduit en une ou 2 lignes!
Et des commandes en plus: entAleat (1,3,X (j'ignorais la possibilité de faire une liste(X)et les opérations..
et suite (fct, x, deb, fin)!!

Merci pour tout ce travail et ta bienveillance permanente. Merci.

  Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Dim 31 Mai 2015, 22:25   Citer 

Je t'en prie, je suis content d'avoir pu t'aider.

Si tu as d'autres trucs comme ça n'hésite pas, c'est toujours avec plaisir.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes