Ejercicio 1

Se tiene el precio inicial $0, entonces se tiene que leer los números de input.txt y así poder sumarlos fácilmente.

datos <- read.table("input.txt",sep=",")

sum(datos)
## [1] 439

Ejercicio 2

Ejercicio 3

En este ejercicio tenemos que encontrar primeros los números que sean múltiplos de 3 y de 5 menores a 1000 para después sumarlos. Para esto necesitamos crear una lista hasta el 999 ya que se pide que sean menores a 1000, después usaremos la función sum() de los elementos de la lista que cumplan que sean múltiplos de 3 y 5.

n <- 1:999

sum(n[n %% 5 == 0 | n %% 3 == 0])
## [1] 233168

Ejercicio 4

Al resolver el ejercicio primero tenemos que hacer una función para nos pueda sacar la serie de Fibonacci, después de eso ver que números eran pares e impares para sumarlos cada uno respectivamente y así poder hacer el cociente de impares entre pares.

f <- function(n){
  m = n-1
  fibo <- c()
  p = 0
  im = 2
  fibo[c(1,2)] = 1
  for(i in 3:m){
    fibo[i] = fibo[i-1] + fibo[i-2]
    if(fibo[i] >= n)
      break
    if(fibo[i]%%2 == 0){
      p = p + fibo[i]
    }else{
      im = im + fibo[i]
    }
  }
  im/p
}
f(1000000000)
## [1] 4.236068

Ejercicio 5

En principio llamamos a la librería ggplot y gganimate para el gráfico. Usamos una alternativa de la serie de Fibonacci para poder hacer la misma proporción de impares entre pares.

library(ggplot2)
library(gganimate)

fibo2 <- function(n){
  f <- c()
  f[c(1,2)] <- 1
  for(i in 3:n){
    f[i] <- f[i-1] + f[i-2]
  }
  return(f)
}

z <- c()
pasos <- c(10*c(1:200))
for (i in 1:200) {
  z[i] <- sum(fibo2(pasos[i])%%2 != 0)/sum(fibo2(pasos[i])%%2 == 0)
}

a <- as.data.frame(z)
p <- ggplot(a,aes(x = 1:200,y = z)) + 
  geom_point(color = "red",size = 3) +
  labs(y = "impares/pares") +
  transition_reveal(1:200)

Ejercicio 6

Se manda a llamar a la biblioteca de Primes para poder usar funciones para manejarlos más fácilmente.

library(primes)
Pr = 0
for(i in 1:100){
  z <- generate_primes(min = 2,10*i)
  Pr[i] <- length(z)/(10*i)
}

Pr1 <- as.data.frame(Pr)

pr2 <- ggplot(Pr1, aes(x = 1:100, y = Pr)) +
  geom_point(color = "red",size = 3) +
  labs(x = "10*Naturales", y = "Proporci昼㸳n") + 
  transition_reveal(1:100)

Ejercicio 7

Es sencillo encontrar un contraejemplo para ver que no se cumple de vuelta. La variable aleatoria X tiene distribución normal y Y es una variable aleatoria que depende de Y. Como la correlación es cero, uno pensaría que son independientes pero al contrario con este ejemplo vemos que esa implicación es falsa.

x <- rnorm(1000)
y <- x^2
round(cor(x,y))
## [1] 0

Ejercicio 8

casino <- function(di,c,a,n){
  g_i <- c()
  g_a = 0
  for(i in 1:n){
    ga_i = 0
    play<-c(sample(1:6, 3, replace = T, rep(1/6,6)))
    
    for(j in 1:3){
      if(play[j] == 6)
        ga_i = ga_i + a
    }
    g_i[i] = ga_i - c
    
  }
  g <- cumsum(g_i)
  
  plot(0:n,c(0,g),xlab = "Numero de juegos",ylab = "Ganacia acumulada",type = "l")
  data.frame(ganancia_juego_i = g_i, gananacia_acumulada = g)
}

c1 <- casino(10,10,10,10000)

mean(c1[,1])
## [1] -5.066
var(c1[,1])
## [1] 41.15976
c2 <- casino(10,2,5,10000)

mean(c2[,1])
## [1] 0.524
var(c2[,1])
## [1] 10.22545
c3 <- casino(100,10,20,10000)

mean(c3[,1])
## [1] -0.072
var(c3[,1])
## [1] 164.6513
c4 <- casino(1000,5,10,10000)

mean(c4[,1])
## [1] -0.008
var(c4[,1])
## [1] 41.96413

Como conclusión vemos que la depende mucho de cuanto cueste el juego y cuanto dinero se gane por partida. En general si se gana menos o lo mismo que cuesta el juego, la ganancia acumulada será negativa. En el caso contrario se tiene que al final se tendrá una ganancia de verdad.