Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Nadi Tomeh
SDA
Commits
a265bdd2
Commit
a265bdd2
authored
Sep 10, 2019
by
david
Browse files
Commentaires python suppression accents
parent
9b64515d
Changes
2
Hide whitespace changes
Inline
Side-by-side
TP1/Python/analyzer.py
View file @
a265bdd2
import
math
# Classe utilis
é
e pour faire des statistiques
élé
mentaires
# sur une s
é
quence d'op
é
rations.
# Classe utilis
e
e pour faire des statistiques
ele
mentaires
# sur une s
e
quence d'op
e
rations.
class
Analyzer
:
# Constructeur de la classe analyse
# Complexit
é
en temps/espace, pire et meilleur cas : O(1)
# Complexit
e
en temps/espace, pire et meilleur cas : O(1)
def
__init__
(
self
):
self
.
cost
=
[];
self
.
cumulative_cost
=
[];
self
.
cumulative_square
=
0.
;
# Ajoute un coût, une valeur à l'analyse.
# Complexit
é
en temps/espace, pire cas : O(size)
# Complexit
é
en temps/espace, meilleur cas : O(1)
# Complexit
é
amortie : O(1)
# Complexit
e
en temps/espace, pire cas : O(size)
# Complexit
e
en temps/espace, meilleur cas : O(1)
# Complexit
e
amortie : O(1)
# @param x est la valeur que l'on souhaite ajouter à l'analyse.
def
append
(
self
,
x
):
self
.
cost
.
append
(
x
)
...
...
@@ -21,43 +21,43 @@ class Analyzer:
self
.
cumulative_cost
.
append
(
self
.
cumulative_cost
[
len
(
self
.
cumulative_cost
)
-
1
]
+
x
if
len
(
self
.
cumulative_cost
)
>
0
else
x
)
self
.
cumulative_square
=
self
.
cumulative_square
+
x
*
x
# Renvoie la somme des coûts enregistr
é
s dans cette analyse.
# Complexit
é
en temps/espace, meilleur cas : O(1)
# @returns la somme des coûts enregistr
é
s dans cette analyse.
# Renvoie la somme des coûts enregistr
e
s dans cette analyse.
# Complexit
e
en temps/espace, meilleur cas : O(1)
# @returns la somme des coûts enregistr
e
s dans cette analyse.
def
get_total_cost
(
self
):
return
self
.
cumulative_cost
[
len
(
self
.
cumulative_cost
)
-
1
]
# Renvoie le coût amorti d'une op
é
ration.
# Complexit
é
en temps/espace, meilleur cas : O(1)
# @param pos est l'indice de l'op
é
ration pour laquelle on veut connaître le coût amorti.
# @returns le coût amorti d'une op
é
ration.
# Renvoie le coût amorti d'une op
e
ration.
# Complexit
e
en temps/espace, meilleur cas : O(1)
# @param pos est l'indice de l'op
e
ration pour laquelle on veut connaître le coût amorti.
# @returns le coût amorti d'une op
e
ration.
def
get_amortized_cost
(
self
,
pos
):
return
self
.
cumulative_cost
[
pos
]
/
pos
if
pos
>
0
else
self
.
cumulative_cost
[
pos
]
# Renvoie la moyenne des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Complexit
é
en temps/espace, meilleur cas : O(1)
# @returns la moyenne des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Renvoie la moyenne des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
# Complexit
e
en temps/espace, meilleur cas : O(1)
# @returns la moyenne des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
def
get_average_cost
(
self
):
if
len
(
self
.
cumulative_cost
)
==
0
:
raise
Exception
(
'List is empty'
)
return
self
.
cumulative_cost
[
len
(
self
.
cumulative_cost
)
-
1
]
/
len
(
self
.
cumulative_cost
);
# Renvoie la variance des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Complexit
é
en temps/espace, meilleur cas : O(1)
# @returns la variance des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Renvoie la variance des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
# Complexit
e
en temps/espace, meilleur cas : O(1)
# @returns la variance des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
def
get_variance
(
self
):
mean
=
self
.
get_average_cost
()
mean_square
=
mean
*
mean
return
self
.
cumulative_square
-
mean_square
# Renvoie l'
é
cart-type des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Complexit
é
en temps/espace, meilleur cas : O(1)
# @returns l'
é
cart-type des coûts de toutes les op
é
rations enregistr
é
es dans l'analyse.
# Renvoie l'
e
cart-type des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
# Complexit
e
en temps/espace, meilleur cas : O(1)
# @returns l'
e
cart-type des coûts de toutes les op
e
rations enregistr
e
es dans l'analyse.
def
get_standard_deviation
(
self
):
return
math
.
sqrt
(
self
.
get_variance
())
# Sauvegarde la liste des coûts et des coûts amortis dans un fichier.
# Complexit
é
en temps, meilleur/pire cas : O(size)
# Complexit
e
en temps, meilleur/pire cas : O(size)
# @param path est le chemin du fichier dans lequel la sauvegarde est faite.
def
save_values
(
self
,
path
):
f
=
open
(
path
,
'w'
)
...
...
TP1/Python/arraylist.py
View file @
a265bdd2
# Cette classe est un simple proxy vers le type "list" de python
# Le langage ne permettant pas de manipuler l'espace m
é
moire d'une "list",
# Le langage ne permettant pas de manipuler l'espace m
e
moire d'une "list",
# on se contente ici d'observer son comportement.
class
ArrayListProxy
:
# Constructeur de la classe ArraylistProxy
def
__init__
(
self
):
self
.
data
=
[]
# Ajoute l'
élé
ment x au tableau
# Complexit
é
en temps/espace, pire cas : O(data.size)
# Complexit
é
en temps/espace, meilleur cas : O(1)
# Complexit
é
amortie : O(1)
# Ajoute l'
ele
ment x au tableau
# Complexit
e
en temps/espace, pire cas : O(data.size)
# Complexit
e
en temps/espace, meilleur cas : O(1)
# Complexit
e
amortie : O(1)
def
append
(
self
,
x
):
self
.
data
.
append
(
x
)
# Supprime le dernier
élé
ment du tableau
# Supprime le dernier
ele
ment du tableau
def
pop_back
(
self
):
self
.
data
.
pop
()
# Renvoie l'
élé
ment situ
é
à la position 'pos' dans le tableau
# Renvoie l'
ele
ment situ
e
à la position 'pos' dans le tableau
def
get
(
self
,
pos
):
return
self
.
data
[
pos
]
# Renvoie le nombre d'
élé
ments dans le tableau
# Renvoie le nombre d'
ele
ments dans le tableau
def
get_size
(
self
):
return
len
(
data
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment