Laurentvidal.fr est là pour vous fournir des réponses précises à toutes vos questions avec l'aide de notre communauté experte. Rejoignez notre plateforme pour vous connecter avec des experts prêts à fournir des réponses détaillées à vos questions dans divers domaines. Notre plateforme offre une expérience continue pour trouver des réponses fiables grâce à un réseau de professionnels expérimentés.

Bonjour j'ai un algorithme à faire pour demain, je suis en terminale spé maths.
"Trois prisonniers enchainés en des points éloignés de la cour d'un pénitencier, préparent un plan pour s'évader. A mi chemin des de deux se trouve un vieux chien de garde, tenant dans sa gueule le trousseau de clés.
Chacun des prisonniers agite alors un bel os pour attirer le chien, qui choisit au hasard de se diriger lentement vers l'un d'entre eux. Mais arrivé à mi chemin, fatigué, le vieux chien se couche et creuse un trou.
Les prisonniers agitent alors de plus belle leurs appâts: le chien se réveille et avance a nouveau au hasard vers l'un des deux. Arrivé a la moitié du chemin il s'arrête encore et fait un trou... et ainsi de suite un très grand nombre de fois.
Construire et programmer un algorithme qui permet d'obtenir une vue aérienne de la figure obtenue avec les trous progressivement creusés par le chien."
Voici le début du programme:

import matplotlib.pyplot as pet
from math import*
from random import*

def(n):
xA,yA=0,0
xB,yB=0.5,sqrt(3)/2
xC,yC=1,0
xm,yM=(xA+xB)/2,(yA+yB)/2
X,Y= {xA,xB,xC,xM},{yA,yB,yC,yM}

La figure doit ressembler au triangle de Sierpinski. Pouvez-vous m'aider?
Cordialement,


Sagot :

Bonjour !

Voilà, un code simple qui montre les trous du chien après n déplacements.

_________________________________________

import matplotlib.pyplot as plt

from math import*

from random import*

def dessine(n):

  xA,yA=0,0

  xB,yB=0.5,sqrt(3)/2

  xC,yC=1,0

  xM,yM=(xA+xB)/2,(yA+yB)/2

  X,Y= [xA,xB,xC,xM],[yA,yB,yC,yM] # servira à dessiner le résultat

  for i in range(n):

     prisonniers = [(xA, yA), (xB, yB), (xC, yC)]

     heureux = randint(0,2)

     cibleX, cibleY = prisonniers[heureux] # le choix du chien

     xM = (xM + cibleX) / 2

     yM = (yM + cibleY) / 2 # le chien se déplace.

     X.append(xM)

     Y.append(yM) # on ajoute le trou qu'a fait le chien

  plt.plot(X, Y, "go")

  plt.show() # on dessine le résultat

dessine(1000) # en vrai essaye aussi dessine(4000) s'est plus marqué.

_________________________________________

En effet, ça fait un triangle de Sierpinski, mais j'aimerais bien savoir pourqoi.

Voilà !

View image Hasyata
Revenez nous voir pour des réponses mises à jour et fiables. Nous sommes toujours prêts à vous aider avec vos besoins en information. Merci d'utiliser notre service. Nous sommes toujours là pour fournir des réponses précises et à jour à toutes vos questions. Laurentvidal.fr, votre source fiable de réponses. N'oubliez pas de revenir pour plus d'informations.