Bonjour à tous,
je dois écrire un programme.
Un individu gravit un escalier. Il effectue des pas d’une ou deux marches selon le protocole suivant : à chaque fois, avant de faire un pas, il lance une pièce donnant pile avec la probabilité p ∈]0, 1[ ; il progresse ensuite d’une marche s’il obtient «pile» ou enjambe deux marches d’un coup s’il obtient «face».
Donc j'ai un problème. J'ai écrit le code suivant correspondant donc à ces trois questions ( a la fin).
J'ai le code d'erreur suivant :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\\Downloads\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
execfile(filename, namespace)
File "C:\Users\Downloads\WinPython-64bit-3.4.3.5\python-3.4.3.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 85, in execfile
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace)
File "C:/Users/Desktop/", line 59, in <module>
hauteur=hauteur(n,p)
File "C:/Users//Desktop/", line 38, in hauteur
variable=pas(p)
File "C:/Users//Desktop/", line 28, in pas
if random.random()<p:
AttributeError: 'builtin_function_or_method' object has no attribute 'random'
>>>
voici le code que j 'ai tapé
et voici les questions qui m'ont permis d'effectuer ce cheminement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 # -*- coding: utf-8 -*- """ Created on Sat Jan 2 14:35:51 2016 """ # PARTIE 1 import random import matplotlib.pyplot as plt import statistics from pylab import* def pas(p): if random.random()<p: nbredemarches=1 else: nbredemarches=2 return nbredemarches def hauteur(n,p): sommetotaldemarches=0 variable=0 for k in range (0,n,1): variable=pas(p) sommetotaldemarches=variable+ sommetotaldemarches return sommetotaldemarches def nombre (n,p): nombredepaseffectue=0 variable=0 while variable<n: sommetotaldemarches=hauteur(n,p) variable=variable+sommetotaldemarches nombredepaseffectue=nombredepaseffectue+1 return nombredepaseffectue n=50 p=0,4 for k in range (0,2*n,1): plt.plot([k,k,k+1,k+1],[k,k+1,k+1,k+2],'k') hauteur=hauteur(n,p) plt.plot([hauteur,hauteur+1],[hauteur,hauteur],'r') plt.show()
2.En déduire une fonction Python nommée pas qui prend en entrée le réel p ∈]0, 1[ et renvoie le nombre de marches gravies par l’individu lors d’un pas. 3. Ecrire une fonction Python nommée hauteur qui prend en entrée un entier n ∈ N ∗ et le réel p ∈]0, 1[, puis qui renvoie le nombre de marches gravies par l’individu à l’issue de n pas.
4. Ecrire une fonction Python nommée nombre qui prend en entrée un entier n ∈ N ∗ et le réel p ∈]0, 1[, puis qui renvoie le nombre de pas justes nécessaires pour atteindre ou dépasser la n-ième marche.
5. A la suite des fonctions précédentes, écrire des instructions Python – qui affectent à n la valeur 50 et à p la valeur 0.4, – puis qui tracent en noir un escalier à 2n marches et un point rouge
Merci pour votre aide.
Partager