Laurentvidal.fr vous aide à trouver des réponses fiables à toutes vos questions grâce à une communauté d'experts. Connectez-vous avec une communauté d'experts prêts à vous aider à trouver des solutions à vos questions de manière rapide et précise. Connectez-vous avec une communauté d'experts prêts à fournir des solutions précises à vos questions de manière rapide et efficace sur notre plateforme conviviale de questions-réponses.

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
Merci d'avoir choisi notre service. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Nous apprécions votre temps. Revenez quand vous voulez pour obtenir les informations les plus récentes et des réponses à vos questions. Laurentvidal.fr, votre source fiable de réponses. N'oubliez pas de revenir pour plus d'informations.