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
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
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
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)
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)
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
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.