Está en la página 1de 5

#dividir

179/100

# Modulo
179%%100

# division entera
179%/%100

library(tidyselect)
library(descr)

#sumar
sump=function(a,b){
s=a+b
return(s)
}

# tablas estadisticas

tblf=function(x,c){
inte=cut(x,breaks=c)
tabla=freq(ordered(inte),plot=TRUE)
}

# algoritmo de cuadrado medio

c2_pse=function(semilla,n){
ls=str_length(semilla) # indicar el numero caracter a extraer
r=numeric(n)
semillas=numeric(n)
for( i in 1:n){
x=semilla^2
d=str_length(x)
#completado a logintud par
if(d%%2==0){
nc=x
}else{nc=paste(0,x,sep="")}
# determinar logintud nc
y=str_length(nc)
p=(y-ls)/2
# extraer los caracteres para nuestra nueva semilla
semilla=as.numeric(str_sub(nc,p+1,y-p))
#guardando
semillas[i]=semilla
r[i]=semilla/(10^ls)
}
cbind(semillas,r)
}

p=c2_pse(445,100)
p=tbl_df(p)
x=p$r
tblf(x,4)
plot(density(x),col="red")

p1=c2_pse(5735,10)
p1=tbl_df(p1)
p2=c2_pse(5735,100)
p2=tbl_df(p2)
p3=c2_pse(5735,1000)
p3=tbl_df(p3)
plot(density(p1$r),col="red")
lines(density(p2$r),col="blue")
lines(density(p3$r),col="black")
## s=3 asignando s<-3
#s=2 #3==3

ggplot()+
stat_ecdf(data=p3,aes(p3$r),color="red")+
stat_ecdf(data=p2,aes(p2$r),color="black")+
stat_ecdf(data=p1,aes(p1$r),color="blue")+
theme_bw()

# productos medios

pm_pse=function(semilla0,semilla,n){
ls=str_length(semilla) # indicar el numero caracter a extraer
r=numeric(n)
semillas=numeric(n)
for( i in 1:n){
x=semilla*semilla0
semilla0=semilla
d=str_length(x)
#completado a logintud par
if(d%%2==0){
nc=x
}else{nc=paste(0,x,sep="")}
# determinar logintud nc
y=str_length(nc)
p=(y-ls)/2
# extraer los caracteres para nuestra nueva semilla
semilla=as.numeric(str_sub(nc,p+1,y-p))
#guardando
semillas[i]=semilla
r[i]=semilla/(10^ls)
}
cbind(semillas,r)
}

p=pm_pse(5015,5734,10)
p=tbl_df(p)
x=p$r
table(x)
tblf(x,4)
plot(density(x),col="red")

p1=pm_pse(5015,5734,10)
p1=tbl_df(p1)
p2=pm_pse(5015,5734,100)
p2=tbl_df(p2)
p3=pm_pse(5015,5734,1000)
p3=tbl_df(p3)
# deteminar numero de numero unicos
t=data.frame(table(p3$r))
t1=t %>%
filter(Freq==2)
t1
sum(t1$Freq)

sum(t$Freq)
plot(density(p1$r),col="red")
lines(density(p2$r),col="blue")
lines(density(p3$r),col="black")
## s=3 asignando s<-3
#s=2 #3==3

# funcion de distribucion empirica


ggplot()+
stat_ecdf(data=p3,aes(p3$r),color="red")+
stat_ecdf(data=p2,aes(p2$r),color="black")+
stat_ecdf(data=p1,aes(p1$r),color="blue")+
theme_bw()

# algoritmo de multiplicacion constante

cte_pse=function(semilla,cte,n){
ls=str_length(semilla) # indicar el numero caracter a extraer
r=numeric(n)
semillas=numeric(n)
for( i in 1:n){
x=semilla*cte
d=str_length(x)
#completado a logintud par
if(d%%2==0){
nc=x
}else{nc=paste(0,x,sep="")}
# determinar logintud nc
y=str_length(nc)
p=(y-ls)/2
# extraer los caracteres para nuestra nueva semilla
semilla=as.numeric(str_sub(nc,p+1,y-p))
#guardando
semillas[i]=semilla
r[i]=semilla/(10^ls)
}
cbind(semillas,r)
}

p=cte_pse(9803,6965,10)
p=tbl_df(p)
x=p$r
tblf(x,4)
plot(density(x),col="red")

p1=cte_pse(9803,6965,10)
p1=tbl_df(p1)
p2=cte_pse(9803,6965,100)
p2=tbl_df(p2)
p3=cte_pse(9803,6965,1000)
p3=tbl_df(p3)
plot(density(p1$r),col="red")
lines(density(p2$r),col="blue")
lines(density(p3$r),col="black")
## s=3 asignando s<-3
#s=2 #3==3

# funcion de distribucion empirica


ggplot()+
stat_ecdf(data=p3,aes(p3$r),color="red")+
stat_ecdf(data=p2,aes(p2$r),color="black")+
stat_ecdf(data=p1,aes(p1$r),color="blue")+
theme_bw()

# algoritmo lineal

al_pse=function(semilla,a,c){
g=str_length(semilla) # indicar el numero caracter a extraer
m=10^g
r=numeric(m)
semillas=numeric(m)
for( i in 1:m){
x=(a*semilla+c)%%m
semilla=x
#guardando
semillas[i]=semilla
r[i]=semilla/(m-1)
}
cbind(semillas,r)
}

p=al_pse(40,19,33)
p=tbl_df(p)
x=p$r
table(x)
tblf(x,4)
plot(density(x),col="red")

# algoritmo lineal modificado


alm_pse=function(semilla,k,g,c){
m=2^g
a=1+4*k
r=numeric(m)
semillas=numeric(m)
for( i in 1:m){
x=(a*semilla+c)%%m
semilla=x
#guardando
semillas[i]=semilla
r[i]=semilla/(m-1)
}
cbind(semillas,r)
}

p=alm_pse(36,3,3,7)
p=tbl_df(p)
x=p$r
table(x)
tblf(x,4)
plot(density(x),col="red")

# Algoritmo congruencias multiplicativo


acm_pse=function(semilla,a0,k,g){
m=2^g
a=a0+8*k
r=numeric(m)
semillas=numeric(m)
for( i in 1:m){
x=(a*semilla)%%m
semilla=x
#guardando
semillas[i]=semilla
r[i]=semilla/(m-1)
}
cbind(semillas,r)
}
x1=17
a0=5
k=2
g=5
p=acm_pse(x1,a0,k,g)
p=tbl_df(p)
x=p$r
table(x)
tblf(x,4)
plot(density(x),col="red")

# Algoritmo congruencia aditivo


aca_pse=function(semilla,m){
ls=length(semilla)
r=numeric(m)
semillas=numeric(m)
for (i in 1:ls){
semillas[i]=semilla[i]
r[i]=semilla[i]/(m-1)
}
for( i in (ls+1):m){
semillas[i]=(semillas[i-1]+semillas[i-ls])%%m
#guardando
r[i]=semillas[i]/(m-1)
}
cbind(semillas,r)
}
m=100
semilla=c(65,89,98,3,69)
p=aca_pse(semilla,100)
p=tbl_df(p)
x=p$r
table(x)
tblf(x,4)
plot(density(x),col="red")

También podría gustarte