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