```{r setup, include=FALSE}
library(knitr)

knitr::opts_chunk$set(echo = TRUE)
```

# Simulations : tirages aléatoires

On dispose d'un ensemble de $n=5$ éléments (A, B, C, D, E). 


1. Effectuer $r = 10.000$ tirages aléatoires sans remise, de $x = 2$ éléments. 



```{r}
dataset <- c("A", "B", "C", "D", "E")

r <- 10000            ## Number of repetition of the experiment
n <- length( dataset) ## Set size
x <- 2                ## Selection size

ordered <- c()
orderless <- c()
for (i in 1:r) {
  selection <- sample(x = dataset, size = 2)
  new.result.ordered <- paste(selection, collapse=" ")
  ordered <- append(ordered, new.result.ordered)

  new.result.orderless <- paste(sort(selection), collapse=" ")
  orderless <- append(orderless, new.result.orderless)
}




```


2. Compter le nombre de sous-ensembles différents en tenant compte de l'odre.

```{r}
kable(table(ordered))

length(unique(sort(ordered)))
```


3. Compter le nombre de sous-ensembles différents en ne tenant pas compte de l'odre.

```{r}
kable(table(orderless))
length(unique(sort(orderless)))
```

4. Comparer les résultats empiriques avec les calculs théoriques. 


5. Sans les énumérer (ce serait impossible), dénombrez les possibilités de tirages de $x=27$ gènes parmi $n=25000$, en tenant compte de l'ordre ou sans en tenir compte. 

```{r}
x <- 27
n <- 25000

## Nmombre de tirages sans tenir compte de l'ordre
n.orderless <- choose(n=n, k = x)

## Nombre de tirages en tenant compte de l'ordre
n.ordered <- n.orderless * factorial(x)

```


## Devoir-maison: chapitre analyse combinatoire

1. Relire -- lentement et en comprenant chaque étape -- le diaporama "Analyse combinatoire". 

2. Reprenez chacun des exercices vus au cours

Dans chaque cas, indiquez 

- le type de tirage **en le justifiant**, 
- les valeurs ds paramètres (n, x, ...) 
- la formule combinatoire (tirée du formulaire), en  remplaçant les paramètres par les valeurs particulières de l'exercice.

3. Résolvez la question de l'examen du 22 janvier comme si vous y étiez.





