Ejercicio 1

Primero hay que cargar el archivo que tiene las variaciones. Para saber el precio resultante de todas las variaciones solo hay que sumarlas y agregar el costo inicial, que en este caso es cero.

z<-read.delim("C:/Users/LENOVO/Desktop/Tarea/input.txt", header=FALSE)
p<-sum(z)+0

El valor obtenido es de: 439

Ejercicio 3

Suma de múltiplos de 3 ó 5 menores a 100

Primero genero a los 99 números, luego voy a fijarme en los números que al ser divididos entre 3 ó 5 el residuo es 0; para esto usaré la operación módulo, denotada por “%%”. Luego solo hay que condicionar a la operación suma y obtendremo lo deseado

x<-1:99
sum(x[x%%3 == 0 | x%%5 == 0])

El resultado es 2,318

Ejercicio 4

Primero hay que construir la sucesión de Fibonacci; usando repeat, for e if sepuede hacer un loop que se detenga cuando se obtenga el primer valor sea mayor a 1,000,000,000.

D=0
D[1]=0
D[2]=1
m<-2
repeat{
  m<-m+1
  for(i in 3:m){
  D[i]<-D[i-1]+D[i-2]
  }
  if(1000000000 < max(D)){
    break
  }
}
#Una vez detenido el proceso, hay que eliminar el último número
#Ya que este es mayor que 1000000000
n<-length(D)
D<-D[-n]
#En D están todos los elementos que nos interesan, ahora obtengo la suma de los pares e impares
#pares
y<-sum(D[D%%2 == 0])
#impares
x<-sum(D[D%%2 == 1])
#Cociente=respuesta
z<-round(x/y,2)

Teniendo a estos elementos, y condicionando a la operación suma, se puede encontrar el número de elementos de la sucesión que son pares y el número de impares, al realizar el cociente se obtiene 4.24

Ejercicio 5

Ahora iré construyendo a la sucesión de Fibonacci hasta tener 10*k elementos con 1<=k<=200

D=0
Z=0
D[1]=0
D[2]=1
m<-2
for(n in 1:200){
  repeat{
  m<-m+1
  for(i in 3:m){
    D[i]<-D[i-1]+D[i-2]
  }
    if(length(D)==(10*n)+1){
    break
    }
  }
  D<-D[-1]
  Z[n]<-sum(D%%2==1)/sum(D%%2==0)
}
plot(Z, xlab= "Cantidad de elementos en la Sucesión", ylab="impares/pares", col="stateblue4")
Fibonacci

Fibonacci

En la gráfica se observa que al empezar la sucesión con pocos elementos, estos serán, en su mayoría, impares. Sin embargo, cuando la sucesión va aumentando de tamaño, el número de elemntos pares se hace mayor que el número de elementos impares; al aumentar el tamaño de la sucesión parece que el número de elementos pares se hace muchísimo más grande que el de los impares.

Ejercicio 6

Descargando el paquete “primes”; este paquete tiene definida a una función, basada en el Teorema de Wilson, que encuentra los números primos dentro de un rango dado.

require(primes)
n<-25
generate_primes(min=2,n)
P=0
for(i in 1:100){
  z<-generate_primes(min=2,10*i)
  P[i]<-length(z)/(10*i)
}
plot(P, xlab="Primeros 10k naturales", ylab="Porcentaje")
Números primos

Números primos

Ejercicio 7

Como contraejemplo usaré a una variable aleatoria X con distribución uniforme y soporte en [-1,1] y defino a otra como: Y=X*X. Estas, por construcción, son dependientes y su covarianza es igual a cero. Como no se pueden obtener todos los valores posibles en R, solo usaré una muestra de esta distribución, de tamaño n. Si n es muy grande, entonces la covarianza va a tomar un valor muy cercano al cero.

n<-1000000
x<-runif(n,-1,1)
y<-x*x
z<-cov(x,y)
round(z,2)

Al redondear a 2 cifras se obtiene el cero.