Ejercicio 1. Usted tiene un algoritmo que estima, dado un instante de tiempo ??t1, la variación de precio que tendrá una acción en la bolsa en los instantes ??t siguientes. Una vez que corre el algoritmo recibe una sucesión de variaciones de precio. Un valor de +3 significa que el precio tendrá un incremento de 3 unidades monetarias, un valor de -5 significa que el precio decrece en 5 unidades monetarias. Empezando con un precio de $0, ¿cuál será el precio resultante de la acción después de que ocurran todas las variaciones?

datos.txt <- read.delim("/Users/Valeria/Downloads/input.txt", header = FALSE, sep = "")
sum(datos.txt)
## [1] 439

Ejercicio 3. Encuentre la suma de todos los multiplos de 3 o 5 menores a 1000

n=1000
tres<-trunc(n/3)
cinco<-trunc(n/5) 
quince<-trunc(n/15) 

sumatres=0
for (i in 0:tres){
  sumatres=sumatres+i
} 

sumacinco=0
for (r in 0:cinco){
  sumacinco=sumacinco+r
}

sumaquince=0
for(t in 0:quince){
  sumaquince=sumaquince+t
}
valores<-c(3*sumatres,5*sumacinco,15*sumaquince)
resultado=valores[1]+valores[2]-valores[3]
resultado
## [1] 234168

Ejercicio 4. Considere los elementos de la sucesión de Fibonacci menores a 1,000,000,000. Sea x la suma de los elementos impares, y la suma de los elementos pares. Encuentre z=x/y

fib <- function(n) {
  a = 0
  b = 1
  for (i in 1:n) {
    tmp = b
    b = a
    a = a + tmp
  }
  return(a)
}
valorfibonacci<-c()
for (i in 0:105){
  if (fib(i)<=1000000000){
    valorfibonacci[i]<-fib(i)
  }
  
}

par<-c()
impar<-c()
for(i in 1:100){
if(valorfibonacci[i]%%2==0){
  par[i]<-valorfibonacci[i]
  impar[i]<-0
}
  else{
    par[i]<-0
    impar[i]<-valorfibonacci[i]
  }
}
sum(par)
sum(impar)
division=sum(par)/sum(impar)
0.236068

Ejercicio 5. Ahora considere los primeros 10n elementos de la sucesión de Fibonacci con n en (1,200), sean x el número de elementos impares, y el número de elementos pares y z=x/y

fib5 <- function(n) {
  a = 0
  b = 1
  for (i in 1:n) {
    m = b
    b = a
    a = add.bigz(a, m) 
  }
  return(a)
}
n=1
##Vectores donde se guardaran los valores 
par5<-as.vector.bigq(c())
impar5<-as.vector.bigq(c())
##Valores de la Suma de cada iteracion 
valorpar<-as.vector.bigq(c())
valorimpar<-as.vector.bigq(c())
division5<-as.vector.bigq(c())

for(n in  1:150){
h=10*n
for(i in 1:h){
  if(fib5(i)%%2==0){
    par5[i]<-1
    impar5[i]<-0
  }
  else{
    par5[i]<-0
    impar5[i]<-1
  }
}
  valorpar[n]<-sum(par5)
  valorimpar[n]<-sum(impar5)
  division5[n]<-valorpar[n]/valorimpar[n]
}
valorimpar
valorpar
division5
write.table(division5,file="division.txt",quote=T,eol="\r")
read.table("/Users/Valeria/Documents/division.txt")
##             x
## 1   0.4285714
## 2   0.4285714
## 3   0.5000000
## 4   0.4814815
## 5   0.4705882
## 6   0.5000000
## 7   0.4893617
## 8   0.4814815
## 9   0.5000000
## 10  0.4925373
## 11  0.4864865
## 12  0.5000000
## 13  0.4942529
## 14  0.4893617
## 15  0.5000000
## 16  0.4953271
## 17  0.4912281
## 18  0.5000000
## 19  0.4960630
## 20  0.4925373
## 21  0.5000000
## 22  0.4965986
## 23  0.4935065
## 24  0.5000000
## 25  0.4970060
## 26  0.4942529
## 27  0.5000000
## 28  0.4973262
## 29  0.4948454
## 30  0.5000000
## 31  0.4975845
## 32  0.4953271
## 33  0.5000000
## 34  0.4977974
## 35  0.4957265
## 36  0.5000000
## 37  0.4979757
## 38  0.4960630
## 39  0.5000000
## 40  0.4981273
## 41  0.4963504
## 42  0.5000000
## 43  0.4982578
## 44  0.4965986
## 45  0.5000000
## 46  0.4983713
## 47  0.4968153
## 48  0.5000000
## 49  0.4984709
## 50  0.4970060
## 51  0.5000000
## 52  0.4985591
## 53  0.4971751
## 54  0.5000000
## 55  0.4986376
## 56  0.4973262
## 57  0.5000000
## 58  0.4987080
## 59  0.4974619
## 60  0.5000000
## 61  0.4987715
## 62  0.4975845
## 63  0.5000000
## 64  0.4988290
## 65  0.4976959
## 66  0.5000000
## 67  0.4988814
## 68  0.4977974
## 69  0.5000000
## 70  0.4989293
## 71  0.4978903
## 72  0.5000000
## 73  0.4989733
## 74  0.4979757
## 75  0.5000000
## 76  0.4990138
## 77  0.4980545
## 78  0.5000000
## 79  0.4990512
## 80  0.4981273
## 81  0.5000000
## 82  0.4990859
## 83  0.4981949
## 84  0.5000000
## 85  0.4991182
## 86  0.4982578
## 87  0.5000000
## 88  0.4991482
## 89  0.4983165
## 90  0.5000000
## 91  0.4991763
## 92  0.4983713
## 93  0.5000000
## 94  0.4992026
## 95  0.4984227
## 96  0.5000000
## 97  0.4992272
## 98  0.4984709
## 99  0.5000000
## 100 0.4992504
## 101 0.4985163
## 102 0.5000000
## 103 0.4992722
## 104 0.4985591
## 105 0.5000000
## 106 0.4992928
## 107 0.4985994
## 108 0.5000000
## 109 0.4993122
## 110 0.4986376
## 111 0.5000000
## 112 0.4993307
## 113 0.4986737
## 114 0.5000000
## 115 0.4993481
## 116 0.4987080
## 117 0.5000000
## 118 0.4993647
## 119 0.4987406
## 120 0.5000000
## 121 0.4993804
## 122 0.4987715
## 123 0.5000000
## 124 0.4993954
## 125 0.4988010
## 126 0.5000000
## 127 0.4994097
## 128 0.4988290
## 129 0.5000000
## 130 0.4994233
## 131 0.4988558
## 132 0.5000000
## 133 0.4994363
## 134 0.4988814
## 135 0.5000000
## 136 0.4994487
## 137 0.4989059
## 138 0.5000000
## 139 0.4994606
## 140 0.4989293
## 141 0.5000000
## 142 0.4994720
## 143 0.4989518
## 144 0.5000000
## 145 0.4994829
## 146 0.4989733
## 147 0.5000000
## 148 0.4994934
## 149 0.4989940
## 150 0.5000000

Ejercicio 6. Escriba una función que encuentre los números primos entre 1 y n. Haga un gráfico animado de la proporción de números primos en los primeros 10k naturales con k en (1:100)

esprimo<-function(n) #funcion para ver si es un número primo 
{
  i=0
  j=0
  div=0
  raiz=0
  if(n==1){ 
    return (0)
    } 
  else {
    raiz=sqrt(n)
    for (j in 1:raiz){
      if(n%%j==0){
        div=div+1
      }
    }
    if(div<=1){
      return(1)}
    else {return (0)} ##En el caso en que no sea número primo 
  }
  
}
##Funcion que nos de los números primos 

primo<-function(n){ 
 primos<-c()
 i=1
for(j in 1:n){
  
  if(esprimo(j)!=0){
    
    primos[i]<-j
    i=i+1
  }
  
} 
 return(primos)
}
###Proporciones####
numero<-c()
proporcion<-c()
for(k in 1:100){
h=10*k
for( i in 1:h){
  if(esprimo(i)==1){
    numero[i]<-1
  }else {
    numero[i]=0
    }
}
 proporcion[k]=sum(numero)/h
  }
proporcion
##   [1] 0.4000000 0.4000000 0.3333333 0.3000000 0.3000000 0.2833333 0.2714286
##   [8] 0.2750000 0.2666667 0.2500000 0.2636364 0.2500000 0.2384615 0.2428571
##  [15] 0.2333333 0.2312500 0.2294118 0.2277778 0.2210526 0.2300000 0.2190476
##  [22] 0.2136364 0.2173913 0.2166667 0.2120000 0.2115385 0.2111111 0.2107143
##  [29] 0.2103448 0.2066667 0.2032258 0.2062500 0.2000000 0.2000000 0.2000000
##  [36] 0.2000000 0.1972973 0.1973684 0.1974359 0.1950000 0.1951220 0.1928571
##  [43] 0.1906977 0.1931818 0.1933333 0.1913043 0.1936170 0.1916667 0.1897959
##  [50] 0.1900000 0.1901961 0.1865385 0.1867925 0.1833333 0.1836364 0.1821429
##  [57] 0.1824561 0.1827586 0.1813559 0.1816667 0.1819672 0.1838710 0.1809524
##  [64] 0.1796875 0.1815385 0.1818182 0.1805970 0.1808824 0.1797101 0.1785714
##  [71] 0.1788732 0.1777778 0.1767123 0.1770270 0.1760000 0.1763158 0.1766234
##  [78] 0.1756410 0.1746835 0.1737500 0.1728395 0.1719512 0.1746988 0.1738095
##  [85] 0.1717647 0.1732558 0.1724138 0.1715909 0.1730337 0.1711111 0.1703297
##  [92] 0.1706522 0.1698925 0.1691489 0.1694737 0.1687500 0.1680412 0.1683673
##  [99] 0.1676768 0.1680000