diff --git a/module2/exo1/toy_document_fr.Rmd b/module2/exo1/toy_document_fr.Rmd
index efcfd940fd362b993af5338669f5845a1fe6573c..a277f0c606dc661b44d20f981cb0ef814d4a5dd5 100644
--- a/module2/exo1/toy_document_fr.Rmd
+++ b/module2/exo1/toy_document_fr.Rmd
@@ -1,33 +1,41 @@
---
-title: "Votre titre"
-author: "Waad ALMASRI"
-date: "La date du jour"
+title: A propos du calcul de $\pi$
+author:
Waad ALMASRI
+date:
31 July 2020
output: html_document
---
-
-
-```{r setup, include=FALSE}
-knitr::opts_chunk$set(echo = TRUE)
+## En demandant à la lib maths
+Mon ordinateur m’indique que $\pi$ vaut *approximativement*
+```{r pi, echo=TRUE}
+pi
```
-## Quelques explications
+## En utilisant la méthode des aiguilles de Buffon
-Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez .
+Mais calculé avec la __méthode__ [des aiguilles de Buffon](https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), on obtiendrait comme __approximation__
-Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante:
-
-```{r cars}
-summary(cars)
+```{r echo=TRUE}
+set.seed(42)
+N = 100000
+x = runif(N)
+theta = pi/2*runif(N)
+2/(mean(x+sin(theta)>1))
```
-Et on peut aussi aisément inclure des figures. Par exemple:
+## Avec un argument “fréquentiel” de surface
-```{r pressure, echo=FALSE}
-plot(pressure)
-```
+Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d’appel à la fonction sinus se base sur le fait que si $X\sim U(0,1)$ et $Y\sim U(0,1)$ alors $P[X^2+Y^2\leq 1]=\pi/4$ (voir [méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80)). Le code suivant illustre ce fait:
-Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles.
-
-Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter.
+```{r echo=TRUE}
+set.seed(42)
+N = 1000
+df = data.frame(X = runif(N), Y = runif(N))
+df$Accept = (df$X**2 + df$Y**2 <=1)
+library(ggplot2)
+ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
+```
-Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.
+Il est alors aisé d’obtenir une approximation (pas terrible) de $\pi$ en comptant combien de fois, en moyenne, $X^2+Y^2$ est inférieur à 1:
+``` {r echo=TRUE}
+4*mean(df$Accept)
+```
diff --git a/module2/exo1/toy_document_fr.html b/module2/exo1/toy_document_fr.html
index a17b347339c040c400ee53eb66f3e0789bb4f012..7185f39edb81ead47208314264545e7f502fd6da 100644
--- a/module2/exo1/toy_document_fr.html
+++ b/module2/exo1/toy_document_fr.html
@@ -9,10 +9,9 @@
-
-Votre titre
+A propos du calcul de \pi
#+HTML_HEAD:
-* Quelques explications
+#+PROPERTY: header-args :session :exports both
-Ceci est un document org-mode avec quelques exemples de code
-R. Une fois ouvert dans emacs, ce document peut aisément être
-exporté au format HTML, PDF, et Office. Pour plus de détails sur
-org-mode vous pouvez consulter https://orgmode.org/guide/.
+* En demandant à la lib maths
-Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
-compilé en html. Tout le code contenu sera ré-exécuté, les résultats
-récupérés et inclus dans un document final. Si vous ne souhaitez pas
-ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
-le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
-document.
+Mon ordinateur m'indique que $\pi$ vaut /approximativement/
+#+begin_src R :results output :session *R* :exports both
+pi
+#+end_src
+
+#+RESULTS:
+: [1] 3.141593
-Comme nous vous l'avons montré dans la vidéo, on inclut du code
-R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
+* En utilisant la méthode des aiguilles de Buffon
-#+begin_src R :results output :exports both
-print("Hello world!")
+Mais calculé avec la *méthode* des
+[[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on
+obtiendrait comme *approximation* :
+#+begin_src R :results output :session *R* :exports both
+set.seed(42)
+N = 100000
+x = runif(N)
+theta = pi/2*runif(N)
+2/(mean(x+sin(theta)>1))
#+end_src
#+RESULTS:
-: [1] "Hello world!"
+:
+: [1] 3.14327
-Voici la même chose, mais avec une session R (c'est le cas le
-plus courant, R étant vraiment un langage interactif), donc une
-persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
-~C-c C-c~).
+* Avec un argument "fréquentiel" de surface
+
+Sinon, une méthode plus simple à comprendre et ne faisant pas
+intervenir d'appel à la fonction sinus se base sur le fait que si $X\sim
+U(0,1)$ et $Y\sim U(0,1)$ alors $P[X^2+Y^2\leq 1]=\pi/4$ (voir [[https://fr.wikipedia.org/wiki/Méthode_de_Monte-Carlo#Détermination_de_la_valeur_de_π][méthode de Monte Carlo sur Wikipedia]]). Le
+code suivant illustre ce fait:
+
+#+begin_src R :results output graphics :file figure_pi_mc1.png :exports both :width 600 :height 400 :session *R*
+set.seed(42)
+N = 1000
+df = data.frame(X = runif(N), Y = runif(N))
+df$Accept = (df$X**2 + df$Y**2 <=1)
+library(ggplot2)
+ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
-#+begin_src R :results output :session *R* :exports both
-summary(cars)
#+end_src
#+RESULTS:
-: speed dist
-: Min. : 4.0 Min. : 2.00
-: 1st Qu.:12.0 1st Qu.: 26.00
-: Median :15.0 Median : 36.00
-: Mean :15.4 Mean : 42.98
-: 3rd Qu.:19.0 3rd Qu.: 56.00
-: Max. :25.0 Max. :120.00
-
-Et enfin, voici un exemple de sortie graphique:
-#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
-plot(cars)
+[[file:figure_pi_mc1.png]]
+
+Il est alors aisé d'obtenir une approximation (pas terrible) de $\pi$ en
+comptant combien de fois, en moyenne, $X^2 + Y^2$ est inférieur à 1 :
+
+#+begin_src R :results output :session *R* :exports both
+4*mean(df$Accept)
#+end_src
#+RESULTS:
-[[file:./cars.png]]
-
-Vous remarquerez le paramètre ~:exports results~ qui indique que le code
-ne doit pas apparaître dans la version finale du document. Nous vous
-recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre
-(indiquer ~both~) car l'objectif est que vos analyses de données soient
-parfaitement transparentes pour être reproductibles.
-
-Attention, la figure ainsi générée n'est pas stockée dans le document
-org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
-de le committer si vous voulez que votre analyse soit lisible et
-compréhensible sur GitLab.
-
-Enfin, pour les prochains exercices, nous ne vous fournirons pas
-forcément de fichier de départ, ça sera à vous de le créer, par
-exemple en repartant de ce document et de le commiter vers
-gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
-ce MOOC une configuration avec un certain nombre de raccourcis
-claviers permettant de créer rapidement les blocs de code R (en
-faisant ~
#+HTML_HEAD:
@@ -11,83 +9,72 @@
#+HTML_HEAD:
#+HTML_HEAD:
-* Quelques explications
+#+PROPERTY: header-args :session :exports both
-Ceci est un document org-mode avec quelques exemples de code
-python. Une fois ouvert dans emacs, ce document peut aisément être
-exporté au format HTML, PDF, et Office. Pour plus de détails sur
-org-mode vous pouvez consulter https://orgmode.org/guide/.
+* En demandant à la lib maths
-Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
-compilé en html. Tout le code contenu sera ré-exécuté, les résultats
-récupérés et inclus dans un document final. Si vous ne souhaitez pas
-ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
-le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
-document.
+Mon ordinateur m'indique que $\pi$ vaut /approximativement/ :
-Comme nous vous l'avons montré dans la vidéo, on inclue du code
-python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
-
-#+begin_src python :results output :exports both
-print("Hello world!")
+#+begin_src python :results value :session *python* :exports both
+from math import *
+pi
#+end_src
#+RESULTS:
-: Hello world!
-
-Voici la même chose, mais avec une session python, donc une
-persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
-~C-c C-c~).
-#+begin_src python :results output :session :exports both
-import numpy
-x=numpy.linspace(-15,15)
-print(x)
+: 3.141592653589793
+
+* En utilisant la méthode des aiguilles de Buffon
+
+Mais calculé avec la *méthode* des
+[[https://fr.wikipedia.org/wiki/Aiguille_de_Buffon][aiguilles de Buffon]], on obtiendrait comme *approximation* :
+
+#+begin_src python :results value :session *python* :exports both
+import numpy as np
+np.random.seed(seed=42)
+N = 10000
+x = np.random.uniform(size=N, low=0, high=1)
+theta = np.random.uniform(size=N, low=0, high=pi/2)
+2/(sum((x+np.sin(theta))>1)/N)
#+end_src
#+RESULTS:
-#+begin_example
-[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
- -11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
- -8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
- -5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
- -2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
- 0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
- 3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
- 6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
- 9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
- 12.55102041 13.16326531 13.7755102 14.3877551 15. ]
-#+end_example
-
-Et enfin, voici un exemple de sortie graphique:
-#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
+: 3.12891113892
+
+* Avec un argument "fréquentiel" de surface
+
+Sinon, une méthode plus simple à comprendre et ne faisant pas
+intervenir d'appel à la fonction sinus se base sur le fait que si $X\sim
+U(0,1)$ et $Y\sim U(0,1)$ alors $P[X^2+Y^2\leq 1]=\pi/4$ (voir [[https://fr.wikipedia.org/wiki/Méthode_de_Monte-Carlo#Détermination_de_la_valeur_de_π][méthode de Monte Carlo sur Wikipedia]]). Le
+code suivant illustre ce fait:
+#+begin_src python :results output file :var matplot_lib_filename="./figure_pi_mc2.png" :exports both :session *python*
import matplotlib.pyplot as plt
-plt.figure(figsize=(10,5))
-plt.plot(x,numpy.cos(x)/x)
-plt.tight_layout()
+np.random.seed(seed=42)
+N = 1000
+x = np.random.uniform(size=N, low=0, high=1)
+y = np.random.uniform(size=N, low=0, high=1)
+
+accept = (x*x+y*y) <= 1
+reject = np.logical_not(accept)
+
+fig, ax = plt.subplots(1)
+ax.scatter(x[accept], y[accept], c='b', alpha=0.2, edgecolor=None)
+ax.scatter(x[reject], y[reject], c='r', alpha=0.2, edgecolor=None)
+ax.set_aspect('equal')
plt.savefig(matplot_lib_filename)
print(matplot_lib_filename)
#+end_src
#+RESULTS:
-[[file:./cosxsx.png]]
-
-Vous remarquerez le paramètre ~:exports results~ qui indique que le code
-ne doit pas apparaître dans la version finale du document. Nous vous
-recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre
-(indiquer ~both~) car l'objectif est que vos analyses de données soient
-parfaitement transparentes pour être reproductibles.
-
-Attention, la figure ainsi générée n'est pas stockée dans le document
-org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
-de le committer si vous voulez que votre analyse soit lisible et
-compréhensible sur GitLab.
-
-Enfin, n'oubliez pas que nous vous fournissons dans les ressources de
-ce MOOC une configuration avec un certain nombre de raccourcis
-claviers permettant de créer rapidement les blocs de code python (en
-faisant ~