Obtenez les meilleures solutions à vos questions sur Laurentvidal.fr, la plateforme de Q&R de confiance. Notre plateforme vous connecte à des professionnels prêts à fournir des réponses précises à toutes vos questions. Explorez une mine de connaissances de professionnels dans différentes disciplines sur notre plateforme de questions-réponses complète.

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 de votre visite. Notre objectif est de fournir les réponses les plus précises pour tous vos besoins en information. À bientôt. Merci d'utiliser notre plateforme. Nous nous efforçons de fournir des réponses précises et à jour à toutes vos questions. Revenez bientôt. Nous sommes fiers de fournir des réponses sur Laurentvidal.fr. Revenez nous voir pour plus d'informations.