Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#26 02-04-2020 07:46:24

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 800

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Bonjour,

il suffisait pourtant de relire les posts  et les commentaires # des scrpits :

Depuis le module hasard importer tirage aléatoire d'un entier, tirage aléatoire d'un réel

p= tirage aléatoire d'un entier dans l'intervalle [1,3]
Si p vaut 1, alors :
       a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
       Si a< 0.75 alors :
              p prend la valeur 2
       Sinon:
              p prend la valeur 3

Sinon si p vaut 2, alors :
         a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
         Si a< 0.75 alors :
              p prend la valeur 3
         Sinon:
              p prend la valeur 1
Sinon, alors :
         a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
         Si a< 0.75 alors :
              p prend la valeur 1
         Sinon:
              p prend la valeur 21
Afficher les valeurs de p les unes à la suite des autres

En rouge, ce qui a été rajouté pour compléter l'algo fourni que j'ai écrit en vert.
---------------------------------------------------
Le from est pour importer les outils de tirage au sort à utiliser dont Python dispose mais qui ne sont  pas immédiatement disponibles au lancement de Python.

Par exemple, sin, cos, tan sont dans le module math de Python.
Pour servir il faut les importer (de même pour $\pi$) depuis le module math :
from math import sin, cos, tan,pi

@+


Arx Tarpeia Capitoli proxima...

En ligne

#27 02-04-2020 09:25:45

Emmadu29
Invité

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

D’accord merci !
Pour la partie proba j’ai trouvé les résultats des deux premières questions mais j’ai plus de mal à faire l’arbre je sais pas par où m’y prendre

#28 02-04-2020 09:38:08

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 149

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Emmadu29 a écrit :

D’accord merci !
Pour la partie proba j’ai trouvé les résultats des deux premières questions mais j’ai plus de mal à faire l’arbre je sais pas par où m’y prendre

Salut,

montre nous tes réponses et explique l'arbre que tu ferais, on regardera à te dire ce qu'il faut corriger éventuellement.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#29 02-04-2020 10:05:19

Emmadu29
Invité

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Pour la 1 :
p(A1)=0.33
Pour la 2 :
pb1(A2) =0,75
pc1(A2) =0,25
Est ce que la notation est correcte ?
Et pour l’arbre je ne sais pas ce que je dois mettre en premier

#30 02-04-2020 10:18:51

Emmadu92
Invité

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Et j’en reviens à l’algorithme mais si on regarde celui qui nous est donné il y a des Fin Si alors que dans le vôtre il n’y en a aucun

#31 02-04-2020 11:31:00

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 149

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Emmadu29 a écrit :

Pour la 1 :
p(A1)=0.33
Pour la 2 :
pb1(A2) =0,75
pc1(A2) =0,25
Est ce que la notation est correcte ?
Et pour l’arbre je ne sais pas ce que je dois mettre en premier

Oui, ça a l'air OK, mais les notations ne sont pas top.
Perso, j'écrirais $\Pr(A_2/B_1)$ mais je ne sais pas si la notation d'une probabilité conditionnelle est au programme.

Pour l'arbre, je ne suis pas vraiment coutumier, mais voilà :

tu pars de l'origine O puis trois branches, de proba 1/3 chacune, pour aller vers A, B, ou C.
Puis tu es en A : une branche pour aller vers C, proba 3/4, une autre branche pour aller vers B, proba 1/4.
Puis tu continues sur la branche A->C et là, une branche pour aller vers B (3/4) une autre pour aller vers A(1/4).

Idem pour les sommets B et C après le premier tirage, puis tu développes tes branches.
C'est à ce moment-là que tu pourras calculer les probas de $A_2$, $B_2$ et $C_2$.

Dernière modification par freddy (02-04-2020 11:37:59)


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#32 02-04-2020 12:22:54

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 800

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Bonjour,

Content que tu poses la question : ça prouve que tu commences à réfléchir.... ^-^
Parce que je l'ai écrit pour Python...
Et alors ?
Et alors en Python, il n'y a pas de mention de "fin de bloc", donc de Fin Si...
On fait comment alors ?
On se base sur l' IN-DEN-TA-TION !!! i.e le décalage vers la droite (recommandé : 4 espaces)
Si tu les veux, les voilà :
Si p vaut 1, alors :
|       a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
|       Si a< 0.75 alors :
|       |     p prend la valeur 2
|       Sinon:
|       |     p prend la valeur 3
|       Fin Si
Sinon si p vaut 2, alors :
|       a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
|       Si a< 0.75 alors :
|       |    p prend la valeur 3
|       Sinon:
|       |    p prend la valeur 1
|       Fin Si
Sinon, alors :
|       a = choix_aléatoire d'un réel dans l'intervalle [0 ; 1[
|       Si a< 0.75 alors :
|       |    p prend la valeur 1
|       Sinon:
|       |    p prend la valeur 21
|       Fin Si
Fin Si                 
Afficher les valeurs de p les unes à la suite des autres

Tu la vois mieux l'indentation maintenant ?

En fait ce que je t'ai fourni est du pseudo-code il n'y a plus qu'à le traduire en Python.
J'ai vérifié l'énoncé, il n'est pas clair là-dessus...

Je te remets l'algorithme complété copie conforme (à 99%) du modèle fourni :

p $\leftarrow$ un nombre aléatoire égal à 1, 2 ou 3
Si p = 1 alors
|    a $\leftarrow$ un nombre aléatoire de [0 ; 1[
|    Si a < 0.75 alors
|    |   p $\leftarrow$  2
|    Sinon   
|    |   p $\leftarrow$  3 
Sinon si p = 2 alors
|    a $\leftarrow$ un nombre aléatoire de [0 ; 1[
|    Si a < 0.75 alors
|    |   p $\leftarrow$  3
|    Sinon   
|    |   p $\leftarrow$  1
Sinon si p = 3 alors
|    a $\leftarrow$ un nombre aléatoire de [0 ; 1[
|    Si a < 0.75 alors
|    |   p $\leftarrow$  1
|    Sinon   
|    |   p $\leftarrow$  2
Fin Si
Ecrire la valeur de p

Penses-tu que tu étais incapable de le faire toi ?
Moi, je pense que non...
Satisfaite (ou remboursée) ?

@­+

[EDIT]
@freddy : elle se paie notre tête...
Elle prend nos résultats et les soumet de l'autre côté.
J'ai été naïf...
Pour ma part, fin de la collaboration et je regrette beaucoup de m'être laissé berner et apitoyer par quelqu'un de malhonnête...
@Emmamachin : tu ne peux plus plaider la bonne foi : reste sur l'île maths (1er des 2 sites sollicité) et ne reviens pas.
Je pense aller là-bas leur signaler comment tu t'es comportée... Bravo : tu as décroché le gros lot !
https://www.ilemaths.net/sujet-parcouri … 45121.html

Dernière modification par yoshi (02-04-2020 12:33:55)


Arx Tarpeia Capitoli proxima...

En ligne

#33 02-04-2020 12:52:39

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 149

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

yoshi a écrit :

Bonjour,

[…]

[EDIT]
@freddy : elle se paie notre tête...
Elle prend nos résultats et les soumet de l'autre côté.
J'ai été naïf...
Pour ma part, fin de la collaboration et je regrette beaucoup de m'être laissé berner et apitoyer par quelqu'un de malhonnête...
@Emmamachin : tu ne peux plus plaider la bonne foi : reste sur l'île maths (1er des 2 sites sollicité) et ne reviens pas.
Je pense aller là-bas leur signaler comment tu t'es comportée... Bravo : tu as décroché le gros lot !
https://www.ilemaths.net/sujet-parcouri … 45121.html

Salut l'ami,

ouaip, pas trop correcte. C'est une idiote ! Perso, je ferais un signalement à l'ile aux maths, ils vont apprécier moyen aussi je pense.
Bon, je vais arrêter là aussi, mon seul espoir est que ça en aide d'autres, ceux qui nous lisent en silence.
Je réfrène mon désir de détruire mes posts, je pense aux autres.
Pour info, on travaille sur ce qu'on appelle une chaîne de Markov, un des classiques des processus stochastiques. Intéressant.


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#34 02-04-2020 15:21:37

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 800

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Re,

J'ai signalé le pb directement par mail : m'y inscrire juste pour ça aurait été disproportionné.
Je pense si ce mail ne file pas en Indésirables, qu'elle y sera bien reçue...

Je lis en effet dans leur FAQ :

Une demande identique sur plusieurs sites sera considérée comme un multipost et la discussion sera fermée.

Etant donné tous les désagréments que causent le multi-post, le non-respect de cette règle entraînera votre exclusion temporaire ou définitive du forum ! En effet, nous préférons privilégier les membres qui respectent le forum en posant correctement leurs questions plutôt que de perdre trop de temps avec ceux qui ne veulent pas comprendre comment fonctionne le forum.

Ça ne figure pas dans notre charte : on est top laxistes. Je vais voir avec Fred comment y remédier.

@+


Arx Tarpeia Capitoli proxima...

En ligne

#35 03-04-2020 10:55:23

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 14 800

Re : Déplacement aléatoire d'une fourmi sur un tr. equilatéral

Bonjour,

J'ai récrit un code encore plus condensé...
J'ai donc 3 codes, pour l'édification des lecteurs en général et freddy en particulier, avec n essais de t déplacements...

1er code : naïf, calqué sur l'algo fourni

 

from random import randint, random

n,t=10,40
for j in range(1,n+1):
    p= randint(1,3)
    print("               Essai n°:",j+1)
    print(p,end=" ")
    for i in range(1,t+1):
        if p==1:
            a=random()
            if a < 0.75:
                p=2
            else:
                p=3
        elif p==2 :
            a=random()
            if a < 0.75:
                p=3
            else:
                p=1
        else:
            a=random()
            if a < 0.75:
                p = 1
            else:
                p = 2
        print (p, end =" ")
    print()
    print()
 

2e code : pour éviter de répéter 3 fois le même bloc :

from random import randint,random

n,t=10,40
for j in range(1,n+1):
    print("               Essai n°:",j)
    p=randint(1,3)
    print(p,end=" ")
    for i in range(1,t+1):
        a=random()
        if a<0.75:
            p=p+1
            if p==4:
                p=1
        else:
            p=p-1
            if p==0:
                p=3
        print(p,end=" ")
    print()
    print()
 

Et le petit dernier, optimisé, mais nettement moins clair pour un profane.

from random import randint,random

n,t=10,40
for j in range(n+1):
    print("               Essai n°:",j)
    p=randint(1,3)
    print(p,end=" ")
    for i in range(1,t+1):
        sens,correctif=-1+2*(random()<0.75),0
        correctif= 3 if (sens == -1 and p==1) else -3*(sens==1 and p==3)
        p+=sens+correctif
        print(p,end=" ")
    print("\n")
 

@+

[EDIT]
Et un 4e code plus court encore mais plus clair que le précédent :

from random import randint,random

n,t=4,40
for j in range(1,n+1):
    print("               Essai n°:",j)
    p=randint(1,3)
    print(p,end=" ")
    for i in range(1,t+1):
        p=p%3+1 if random()<0.75 else p-1+3*(p==1)
        print(p,end=" ")
    print("\n")
 

Sorties :

               Essai n°: 1
1 2 1 2 3 2 1 2 3 2 3 1 2 1 2 1 2 3 2 3 1 3 1 2 3 1 3 1 2 3 2 3 2 1 3 1 2 1 2 3 1

               Essai n°: 2
2 3 1 2 1 2 3 1 2 3 1 2 3 1 2 1 2 3 1 2 1 2 1 2 1 2 1 2 3 1 2 1 2 3 1 2 3 1 3 1 2

               Essai n°: 3
2 3 1 2 3 2 3 1 2 3 2 3 2 3 1 2 3 1 3 1 3 2 3 1 2 3 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2

               Essai n°: 4
2 3 1 3 1 2 1 2 3 1 2 3 1 2 1 3 1 2 1 3 2 3 1 3 1 3 1 2 3 1 2 3 2 3 2 3 1 2 3 1 2

Dernière modification par yoshi (04-04-2020 19:58:26)


Arx Tarpeia Capitoli proxima...

En ligne

Pied de page des forums