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).

#1 31-03-2020 20:17:55

emmamarechal3333
Membre
Inscription : 31-03-2020
Messages : 2

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

Bonjours, j’ai un dm à faire et je n’y arrive pas donc j’aurais besoin besoin d’aide...
Une fourmi parcourt de manière aléatoire les côtes d'un triangle équilatéral direct ABC. Sa position initiale sur l'un des sommets A, B ou C est décidée de manière aléatoire et équiprobable. Ensuite, quand elle se trouve sur un sommet elle se déplace vers l'un des deux autres sommets. La probabilité qu'elle se déplace dans le sens trigonométrique est 3/4.

Les sommets À, B et C du triangle sont repérés respectivement par les nombres 1, 2 et 3. L'algorithme incomplet suivant détermine le numéro du 2ème sommet fréquenté par la fourmi

Expliquer le rôle de chacune des variables p et a
Compléter l'algorithme afin de prévoir les autres positions initiales possibles de la fourmi
Coder cet algorithme en langage python et tester le programme obtenu
Démontrer avec les probabilités:
Pour tout nombre entier naturel non nul n on considère les événements :
An la n-ieme position de la fourmi est A
Bn la n-ieme position de la fourmi est B
Cn la n-ieme position de la fourmi est C
Donner la probabilité de l'évènement A1 (petit 1)
Préciser Pb1 (A2) et Pc1 (A2)
Représenter cette situation pr un arbre pondéré par des probabilités
Calculer P (A2) que constate-t-on ?
Calculer de même P(B2) et en déduire P(C2)

Parcourir un https://www.ilemaths.net/img/forum_img/ … 5125_1.jpg

Hors ligne

#2 31-03-2020 20:40:13

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Bonsoir,

Tu as posté un sujet sur l'Île Maths ?
Ça s'appelle manger à deux râteliers, mise en concurrence...
Par respect pour eux, restes-y ! Ils ne sont pas plus bêtes que nous (et réciproquement)...

Parce que poster ici ensuite est un signal qui veut dire que tu ne leur fais pas confiance et que, dans le meilleur des cas, tu vas te servir de nos réponses pour contrôler les leurs, dans le pire des cas tu resteras chez le premier qui t'aura répondu et négligera l'autre !

Ce n'est pas bien du tout !!! Personnellement (et je ne suis pas le seul) je n'apprécie pas du tout, mais alors pas du tout du tout !
Si d'ici 3 jours personne là-bas ne t'avait répondu, alors on verrait... En attendant, j'espère que tu n'auras pas de réponse ici...

Merci de ta compréhension.

  - Yoshi -
Modérateur


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 31-03-2020 21:02:41

emmamarechal3333
Membre
Inscription : 31-03-2020
Messages : 2

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

Excusez moi je ne voulais pas mal faire, j’ai juste du mal à avoir des réponses... en tout cas sur l’autre forum personne ne daigne répondre alors que ce n’est pas le cas ici

Hors ligne

#4 01-04-2020 07:18:51

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

re,

Traduction Python de l'algorithme posté chez Robinson Mathsoe ^_^ (je pense qu'ils te répondront) :
j'y ai ajouté
- une boucle de 1 à n+1, en choisissant n avant, pour répéter n fois l'opération
- un print(p) pour visualiser à chaque itération le sommet "choisi"

from random import randint,random

n=100
for i in range(1,n+1):
    p=randint(1,3)
    if p==1:
        a=random()
        if a<=0.75:
            p=2
        else:
            p=3
    print (p,end=" ")


N-B : 0.75  c'est le 3/4 du texte, p le n° du sommet

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 01-04-2020 08:03:33

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

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

emmamarechal3333 a écrit :

Excusez moi je ne voulais pas mal faire, j’ai juste du mal à avoir des réponses... en tout cas sur l’autre forum personne ne daigne répondre alors que ce n’est pas le cas ici

Salut,

on répond car les sujets nous intéressent ET on a un peu de temps disponible, je te laisse deviner pourquoi :-).
Et puis, yoshi adore programmer en Python, et moi, j'essaie d'apprendre ce langage qui me parait très puissant.
Pour finir, les sites d'entraide reposent sur le bénévolat. Il peut se trouver que certains en ont assez, ça m'est arrivé, de rabâcher toujours les mêmes choses sur les mêmes questions posées par des utilisateurs distincts, on aime bien quand les gens se prennent en main pour apprendre à nager, on aime moins les gus qui se laissent porter sur l'eau et attendent qu'on les tractent sur la rive.
Bon courage !


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

Hors ligne

#6 01-04-2020 09:13:02

emmamarechal3444
Invité

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

Merci yoshi pour votre réponse
J’ai une question, l’ajout de votre boucle est nécessaire ? Est ce que c’est cela que je dois rajouter à la question précédente

#7 01-04-2020 09:15:50

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Bonjour,

Programme Python modifié.
L'algorithme fourni était mal foutu : ce qui a été fait pour p=1 aurait dû être répété pour p=2 et p=3
Je l'ai repensé parce qu'en fait cela se résume, dans l'ensemble $\{1,2,3\}$ à ajouter ou soustraire 1 en veillant à rester à l'intérieur...


from random import randint,random

n=100
p=randint(1,3)
for i in range(1,n+1):
    a=random()
    if a<0.75:
        p=p+1
        if p==4:
            p=1
    else:
        p=p-1
        if p==0:
            p=3

Explications
Tr équilatéral direct avec 1, 2, 3


      3
    /  \
   /    \
  1 ---- 2

Je choisis le sommet de départ entre 1 et 3 --> randint
Là a=random() tirage de 0<= a <=1
Si a <=0.75 sens trigo donc p=p+1
    Les sommets sont 1, 2, 3, 4
    Quand atteint-on le sommet 4 ? Avec 3+1=4
    Mais p=4 est en fait p =1 --> donc je corrige
Sinon sens horaire
p diminue de 1
    Mais pb avec p=0 il ne doit pas passer de 1 à 0 mais de 1 à 3 --> je corrige

Donc après le choix du nombre de déplacements (arbitrairement fixé à 100)et le choix aléatoire du sommet de départ je fais exécuter n déplacements à la fourmi.
Voilà 10 essais de mon script :

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

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

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

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

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

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

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

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

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

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

freddy, qu'en penses-tu ?

@+

Dernière modification par yoshi (01-04-2020 10:46:13)


Arx Tarpeia Capitoli proxima...

Hors ligne

#8 01-04-2020 09:22:38

Emmamarechal3256
Invité

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

Mais ici vous l’avez compléter l’algorithme non ?
Vous l’avez pas simplement traduit

#9 01-04-2020 09:33:11

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Bonjour,

Relis mon post, j'ai donné des explications que tu n'as peut-être pas vues puisque j'y travaillais encore.
La traduction "bête et méchante" est au post #4...
La version ci-dessus, comme je l'ai dit est totalement repensée et simplifiée et s'adapte à n'importe quel sommet de départ...
Je viens d'ajouter 10 exemples de 100 déplacements à partir d'un sommet de départ choisi aléatoirement...

Comprends-tu ce que j'ai fait ?
Sinon, questionne de façon précise...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#10 01-04-2020 09:43:34

Emmamarechal42
Invité

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

Merci beaucoup yoshi,
Je vais essayer de décrypter tout ça comme je peux
Si vous voulez jetter un coup d’œil aux proba n’hésitez pas

#11 01-04-2020 11:39:33

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Re,

Pas de pessimisme...
j'ai écrit mon script en pensant à faire simple...
Petite rectification : l'algo qu'on t'a fourni dit a<0.75 moi, j'ai écrit a<= 0.75 : j'ai modifié...

Donc ton algo dit
Pour p =1
tirage de a
a<0,75
    passage à p =2,  on a fait p +1...
    oui mais si on est on sommet 3 il passe à 4 qui n'existe pas. Oui mais 4 c'est 1
sinon ( c à d si a>=0.75)
    passage à p =3  on a fait p-1 mais non, va-t-elle dire p+2, parce que p-1 c'est 0
    Oui, c'est pourquoi je dis : sens trigo c'est +1, l'autre sens c'est -1 et 0 c'est 3.

...1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ...
+1 c'est avancer (sens trigo), -1 reculer (sens inverse).
Tu te positionnes sur le 1 gras.
faire p=p+1 c'est avancer d'un cran tu passes 2
faire p=p-1  c'est reculer d'un cran tu passes à 3

Si tu es sur le 2 gras pas de souci...
Sur le 3 gras
si tu fais p+1 tu passes à 1 et non 4 (qui n'existe pas)
si tu fais p=p-1 tu passes à 2 pas de souci.
D'où les ajustements dans mon code
https://www.cjoint.com/c/JDbkMWjdnMW


@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#12 01-04-2020 11:58:58

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

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

yoshi a écrit :

Bonjour,

[…]
freddy, qu'en penses-tu ?

@+

Re,

pour moi, c'est bien. Un test visuel simple : regarder la suite des 3 nombres, il ne faut pas que des récurrences apparaissent …

Dernière modification par freddy (01-04-2020 12:08:40)


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

Hors ligne

#13 01-04-2020 12:29:21

Emmamarechal67
Invité

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

Donc qu’est ce qu’il fait que je change dans mon algorithme ? Je dois seulement enlever le= ?

#14 01-04-2020 13:23:22

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Re,

Oui, ça commence par là !
Ensuite, deux options :
1. Soit tu gardes ma dernière proposition et tu sens capable d'expliquer, sur demande, le code à ton prof qui risque de se dire : << Ah bin mince, pourquoi mon corrigé ne me dit pas ça ? >>

2. Soit tu prends la première traduction "bête et méchante" proposée, à laquelle je fais une retouche  :

from random import randint,random

n=100
p=randint(1,3)
if p==1:
    a=random()
    if a<0.75:
        p=2
    else:
        p=3
    print (p,end=" ")

Et tu l'étends à

from random import randint,random

n=100
p=randint(1,3)
for i in range(1,n+1):  
    if p==1:
        a=random()
        if a<0.75:
            p=2
        else:
            p=3
    elif p==2:
        a=


    else :
        a=


    print (p,end=" ")

que tu complètes avec adaptation et reviens ensuite me montrer afin que je te dise si c'est bon ou pas...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#15 01-04-2020 16:06:16

Emmamarechal89
Invité

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

a=random()
if a<0.75
p=3
else
p=2

Comment je fais pour rajouter une troisième boucle pour p=3 ?

#16 01-04-2020 17:01:49

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

RE

a=random()
if a<0.75
p=3
else
p=2

Donc, tu n'as rien compris non plus ce mini-code ni à l'algo que tu as fourni...
Comprends-tu quelque à Python ?Je l'espère parce que sinon, tu n'apprendras rien de cette discussion
Il dit quoi ton algo ?
En résumé que :
si la fourmi est sur le sommet 1 (ça c'est traduit par : if p==1;)
     elle peut se rendre sur deux sommets :  le 2 ou le n° 3.
     Quand va-t-elle sur le 2 ?  Réponse : 3 fois sur 4
     Quand va-t-elle sur le 3 ?  Réponse : le reste du temps...

Compléter l'algo, c'est étudier les 2 cas restants :
sinon si la fourmi est sur le sommet 2
   sur quels sommets peut-elle se rendre ?  (<--- j'attends tes réponses, pas dans 8 jours, s'pas !)
   ..................................
sinon (elle est donc ni en 1, ni en 2), la fourmi est sur le sommet  3
   ..................................
   sur quels sommets peut-elle se rendre ? (<--- j'attends tes réponses, pas dans 8 jours, s'pas !)

Comment je fais pour rajouter une troisième boucle pour p=3 ?

Il n'y a pas de boucle à rajouter mais deux conditions.
Tu as à construire une structure conditionnelle :
if condition1 vérifiée:
    Faire qq ch
elif condition2 vérifiée:              (elif c'est else if = sinon si)
    Faire autre chose
else:
    Faire encore autre chose

Ce que traduis par ;

    if p==1:                                 # condition1
        a=random()                        # tirage aléatoire du sens de déplacement
        if a<0.75:                           # si sens trigo        
            p=2                                # va au sommet 2
        else:                                  # sinon (pas sens trigo)    
            p=3                                # va au sommet 3

    elif p==2:                              # condition2
        a=random()                        # tirage aléatoire du sens de déplacement
       

    else :                                      #condition3 : si c'est ni p=1 ni p=2, alors c'est p=3
        a=                                       # tirage aléatoire du sens de déplacement
 

Voilà le code est commenté : le code fait 3 fois la même chose, c'est pour ça que j'ai dit qu'il était mal foutu, mal pensé et que j'avais codé autrement, mais là je l'utilise strictement...
Bouche les lignes vides après les conditions 2 et 3 : il te faut t'inspirer de ce qui est fait dans le branche if p==1...
Et montre ce que tu as fait...
Allez, au taf ! Et fais marcher ta cervelle...
NB1 : Inutile de faire jouer le chœur des pleureuses : on n'a rien sans peine...
NB2 : Tu ne peux pas faire fonctionner Python sans utiliser l'indentation !!!

@+

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#17 01-04-2020 17:28:10

Emmamarechal98
Invité

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

Et bien j’ai à nouveau regardé et j’aurais répondu exactement comme tout à l’heure
Pour vos questions :
1 et 3
1 et 2

#18 01-04-2020 17:58:38

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Et moi, je répète : il n'y a pas de boucle à rajouter dans ce que je te demande...
Ce que tu as dit tout à l'heure ne tient pas la route, désolé.
Je te demande donc pour te guider de compléter :

    if p==1:                                 # condition1
        a=random()                        # tirage aléatoire du sens de déplacement
        if a<0.75:                           # si sens trigo        
            p=2                                # va au sommet 2
        else:                                  # sinon (pas sens trigo)    
            p=3                                # va au sommet 3

    elif p==2:                              # condition2
        a=random()                       # tirage aléatoire du sens de déplacement
        ?
        ?
        ?
        ?

    else :                                      #condition3 : si c'est ni p=1 ni p=2, alors c'est p=3
        a= ?                                   # tirage aléatoire du sens de déplacement
        ?
        ?
        ?
        ?
 

Pour l'instant je te demande d'observer ceci (je te dis ce que fait chaque ligne) :
 

             
        a=random()             # tirage aléatoire du sens de déplacement
        if a<0.75:             # si sens trigo        
            p=2                # va au sommet 2
        else:                  # sinon (pas sens trigo)    
            p=3                # va au sommet 3
 

Puis de remplacer les poins d'interrogation ci-dessus...
Pour cela je te l'ai dit : tu as 3 conditions à l'intérieur desquelles tu vas répéter les mêmes instructions 3 fois.
Vont changer : seulement les valeurs de p (positions de la fourmi et destinations). Les réponses que tu m'as fournies sont exactes (heureusement !!!)

Alors fais- le


Arx Tarpeia Capitoli proxima...

Hors ligne

#19 01-04-2020 18:28:39

Emmamarechal70
Invité

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

Algorithme

Je vous l’ai pris en photo, si c’est pas ça j’abandonne

#20 01-04-2020 18:32:01

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Et elle est où la photo ?

Si c'est pas ça comme tu dis, c'est que tu ne fais pas assez attention au sens des mots que j'emploie..
Alors je donnerai encore le 3e morceau et tu complèteras le 2e...

Pour mettre une image (trop fatigant d'écrire 12 à 13 lignes très peu chargées ?),

Aller sur https:\\www.cjoint.com
Cliquer sur Parcourir
Et naviguer dans ton appareil jusqu'à trouver ta photo
La sélectionner
Cliquer sur Ouvrir
Puis sur Créer le lien Cjoint
Il s'affiche en haut de page.
Le copier puis le coller dans ta réponse sur le forum


Arx Tarpeia Capitoli proxima...

Hors ligne

#21 01-04-2020 18:39:48

Emmadu99
Invité

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

Élif p=2
a=random()
if a < 0,75
p=3
else
p=1
else p=3
a=random()
If a < 0,75
p = 1
else
p = 2
Print (p, end =« »)

#22 01-04-2020 19:29:23

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Oui c'est ça,
Mais il y a des fautes propres à Python que je corrige...
1. Au bout des lignes de condition il faut : (deux points)
2. Après quoi, il faut aller à la ligne en respectant l'indentation (décalage à droite du début de la nouvelle ligne) :
    c'est le fondement de Python sans quoi, un code ne peut fonctionner...
3. if p ==1: c'est une comparaison d'égalité de p avec 1, il faut impérativement utiliser == sinon crac plantage !
    Le = simple c'est pour donner une valeur. Exemple p =randint(1,3) ce n'est pas une comparaison

print (p,end=" ")
signifie:
affiche tous les p (si tu dois en afficher plusieurs) sur la même ligne (ça c'est le rôle de la virgule) séparés par une espace (ça c'est le boulot se end=" ")
si tu demandes seulement print(p) tes résultats s'afficheront l'un en-dessous de l'autre...
Voilà le code "propre" :

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 =" ")


que je rajoute dans le script complet :

from random import randint, random

p= randint(1,3)
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 =" ")
 

Voilà tu as ce qu'on demande...

Ton exo, te questionne ensuite sur A2, B2
Même si ce n'est pas indispensable, je te propose de demander 10 mouvements à la fourmi
Comme ce serait idiot de lancer 10 fois ces 40 lignes, on demande à Python de faire ce boulot à ta place avec rajout d'une boucle de 10 tours (de 1 à 11, mais il s'arrête à 11 -1 qui fait bien 1).
Mais il faudra revoir l'indentation de ces 40 lignes...

from random import randint, random

p= randint(1,3)
for i in range(1,11):
    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 =" ")

Donc, on choisit aléatoirement un sommet de départ et on demande 10 mouvements de la fourmi à partir de ce sommet :
Quelques exemples :

1 2 1 2 3 1 2 3 1 2

1 2 3 1 2 3 1 3 2 3

2 3 1 3 1 2 3 2 3 1

1 2 3 1 2 1 2 3 1 2

2 3 1 2 3 1 2 3 1 2

3 2 3 2 3 1 3 2 3 1

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#23 01-04-2020 19:47:21

Emmamarechal64
Invité

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

Wow super merci beaucoup !
Par contre quand à la question précédente on me demande de compléter l’algorithme, en soit qu’est ce qu’on a rajouté ? Deux boucles c’est ça ?

#24 01-04-2020 20:47:14

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

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

Non !
Une seule, avec le rajout de la ligne for i in range(1,11):
qui donne 10 déplacements de la fourmi.
Si t'en veux 20, remplace 11 par 21...

De plus il était écrit(1ere ligne : p <---)  dans l'algo fourni qu'elle partait aléatoirement (choix au hasard) des sommets 1, 2 ou 3.
Et cet algo, n'étudiait que ce que se passe après un départ du sommet 1 c'était le if p==1:
Qu'est-ce que je t'ai fait faire ?
Mais simplement écrire ce qui se passait après
- un départ du sommet 2 : c'était le elif p==2: et sa suite
- un départ du sommet 3 : c'était le else: qui suivait
Comme ça, le script était complété : les 3 départs possibles étaient étudiés et pas seulement un seul.
Plus le print : il est demandé de tester le fonctionnement. Sans lui, tout ce qu'on peut dire , c'est il fonctionne sans plantage, ce qui ne prouve rien... les résultats auraient très bien pu être incohérents... Comment l'aurait-on su ?

C'était pas évident pour de grands novices en Python : beaucoup de tes camarades ont dû galérer !

La boucle for est un petit raffinement qui permet d'afficher autant de déplacements consécutifs de la souris que tu veux, 1000 si tu veux. il suffirait de remplacer 11 par 1001...
Dans mes versions que tu n'as pas vues, j'ai encore ajouté une 2e boucle placée avant le choix du p de départ qui me permet de recommencer le nombre de fois (20, 30, 50, 2000...) à mon choix du test de 10, 100, 1000 déplacements de la fourmi, sans avoir à relancer 20, 30, 50, 2000... fois le script..

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#25 01-04-2020 21:19:24

Emmamarechal74
Invité

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

Donc comme réponse je dois juste dire ce que j’ai rajouté à partir de elif ? Ça donnerait quoi en langage naturel

Pied de page des forums