set.seed
## function (seed, kind = NULL, normal.kind = NULL) 
## {
##     kinds <- c("Wichmann-Hill", "Marsaglia-Multicarry", "Super-Duper", 
##         "Mersenne-Twister", "Knuth-TAOCP", "user-supplied", "Knuth-TAOCP-2002", 
##         "L'Ecuyer-CMRG", "default")
##     n.kinds <- c("Buggy Kinderman-Ramage", "Ahrens-Dieter", "Box-Muller", 
##         "user-supplied", "Inversion", "Kinderman-Ramage", "default")
##     if (length(kind)) {
##         if (!is.character(kind) || length(kind) > 1L) 
##             stop("'kind' must be a character string of length 1 (RNG to be used).")
##         if (is.na(i.knd <- pmatch(kind, kinds) - 1L)) 
##             stop(gettextf("'%s' is not a valid abbreviation of an RNG", 
##                 kind), domain = NA)
##         if (i.knd == length(kinds) - 1L) 
##             i.knd <- -1L
##     }
##     else i.knd <- NULL
##     if (!is.null(normal.kind)) {
##         if (!is.character(normal.kind) || length(normal.kind) != 
##             1L) 
##             stop("'normal.kind' must be a character string of length 1")
##         normal.kind <- pmatch(normal.kind, n.kinds) - 1L
##         if (is.na(normal.kind)) 
##             stop(gettextf("'%s' is not a valid choice", normal.kind), 
##                 domain = NA)
##         if (normal.kind == 0L) 
##             stop("buggy version of Kinderman-Ramage generator is not allowed", 
##                 domain = NA)
##         if (normal.kind == length(n.kinds) - 1L) 
##             normal.kind <- -1L
##     }
##     .Internal(set.seed(seed, i.knd, normal.kind))
## }
## <bytecode: 0x55a8e8881ab0>
## <environment: namespace:base>
#Exercice 1
#1.1
n=10
a=sample(100,1,replace=T)
x=sample.int(a,n,replace=T)
y=max(x)
#si on augmente n, on a plus de chance d'obtenir la valeur plus proche de a
#si on augmente a, on a moins de chance d'obtenir la valeur proche de a

p=0
N=100
n=10
a=sample(100,1,replace=T)
for(i in 1:N){
  x=sample.int(a,n,replace=T)
  p=max(x)+p
}
p/N
## [1] 89.2
#M est proportionnel avec a et inversement proportionnel avec n donc
#E[M]= a(n-1)/n
#Pour que E[M]=a, alors il faut augmenter n ou bien on peut choisir a=0
#V[M]= (a(n-1)/n -a/2)^2

#1.2
#M' = 2*sum(x_i)/n ~ 2 * (M*N)/n avec N le nombre d'échantillon que l'on fait
p=0
N=100
a=sample(100,1,replace=T)
for(i in 1:N){
  x=sample.int(a,n,replace=T)
  p=sum(x)/n+p
}
p/N*2
## [1] 89.22
#on voit que E[M'] est plus proche de a, car on prend la moyenne des valeurs et on multiplier par 2
#V[M']= v[2MN/n] = 4*(N/n)^2*((a(n-1)/n -a/2)^2) = 4*(N(a(n-1)/n -a/2)/n)^2
#Donc M' est meilleur

#Exercice 2
#2.3
A=runif(1)
n=10
x=runif(n,min=0,max=A)

M=max(x)
r=1.1*M
r<A
## [1] FALSE
#Non, ce n'est pas une bonne stratégie car si n est grand, on a plus de chance d'avoir le max=A donc r(M)>A

p=0 #prob de gain
N=100
for(i in 1:N){
  A=runif(1)
  x=runif(n,min=0,max=A)
  m=max(x)
  r=1.1*m
  if(r<A){
    p=p+1
  }
}
p/N
## [1] 0.38
#on peut voir que c'est plutot <0.5


##2.4
N=1000
n=3
pA_M=c() #pour résultat de P(A=a|M=m)
for(k in 0:10){
  a=k/10 #pour chaque valeur de a
  Pe=c()
  valM=c()
  for (i in 1:N){ #répétition du jeu N fois
    A=sample(x = 10, size = 1, replace = T)/10
    x=sample(x = (10*A), size = n, replace = T)/10
    M=max(x)
    Pe=c(Pe,(A==a && M==0.5)) #P(A=a,M=m) on peut changer la valeur de m
    valM=c(valM,M)
  }
  pA_M=c(pA_M,mean(Pe)/mean(valM==0.5)) #P(A==a|M=0.5)
}
#Avec le résultat de PA_M, on constate que la meilleur valeur de a est 0.5
##

##2.5
#Oui c'est une stratégie qui est mieux que la précédente, car si on prend un alpha le plus de de 1 mais qui est inférieur à 1, cela ne change pas beaucoup la valeur de M
cpt1=0 #prob de gain pour alpha=0.3
cpt2=0 #pour alpha=0.5
cpt3=0 #pour alpha=0.7
N=100
n=2
for(j in 1:N){
  for(i in seq(0.3,0.7,0.2)){
    A=runif(1)
    x=runif(n,min=0,max=A)
    M=max(x)
    r=M**i
    if(r<A & i==0.3){
      cpt1=cpt1+1
    }
    else if(r<A & i==0.5){
      cpt2=cpt2+1
    }
    else if(r<A & i==0.7){
      cpt3=cpt3+1
    }
    else{}
  }
}
cpt1/N #0.3
## [1] 0.19
cpt2/N #0.5
## [1] 0.25
cpt3/N #0.7
## [1] 0.52
#On constate que avec n=2 et alpha=0.7, on a plus de chance de gangner
#Avec n=10, on voit que les probabilités de gain diminuent, mais on voit toujours que l'on a plus de chance quand alpha=0.7
##
p=1:10
for(i in 1:10){p[i]=0}
N=100
n=10
for(j in 1:N){
  cpt=1
  for(i in seq(0,0.9,0.1)){
    A=runif(1)
    x=runif(n,min=0,max=A)
    M=max(x)
    r=M**i
    if(r<A){
      p[cpt]=p[cpt]+1
    }
    cpt=cpt+1
  }
}
p/N #probabilité de gain avec alpha de 0.0 à 0.9
##  [1] 0.00 0.00 0.01 0.04 0.06 0.10 0.11 0.18 0.33 0.49
#On constate que avec alpha = 0.9 qui donne le meilleur résultat (on peut prendre aussi des valeurs entre 0.9 et 1 pour que ça soit encore meilleur)


#Exercice 3
#3.6
#Si Bob dit toujours "oui", la probabilité de gagner est de 0.5, mais ça dépend aussi les éléments qui peut influencer la manière de lancer de la pièce par Alice que la probabilité peut être changé (si on relance le jeu plusieurs fois).

#3.7
#On peut faire une stratégie suivante: Bob va dire "oui" si Alice donne une valeur >0.5, sinon, Bob va dire "non"
#Donc si Alice donne A1=0.4 et A2=0.6, alors on a surement gagner car Bob va dire "oui" si la pièce tombe sur Pile et "non" si la pièce tombe sur Face.

N=10000
gain=0
for(i in 1:N){
  a1=runif(1)
  a2=runif(2)
  pf=sample(x=2,size=1,replace=T) #1 pile, 2 face
  if((pf==1 && max(a1,a2)>0.5) || (pf==2 && min(a1,a2)<=0.5)){
    gain=gain+1
  }
}
gain/N
## [1] 0.8709
#Si on tire 2 nombres uniformément sur [0,1], la probabilité de gagner est environ 0.88

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      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

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.