KPI Rojos
2026-04-15
Desarrolla dos algoritmos que hagan este trabajo, por ejemplo para sumar desde 1 hasta 1 ∗ 1010 y verifica cuál de los dos es más eficiente
El primer método que decidimos hacer es el iterativo, se basa en carear un vector de longitud del número elegido. Luego de eso se procede a sumar ciclicamente un número luego el siguiente y así sucesivamente. Este método tiene como desventaja clara un mayor tiempo de demora, si bien en números relativamente chicos para la potencia de las computadoras (como lo es 1010) no hay tanta diferencia, en números mas grandes si es notoria la diferencia.
Newton <- (1:1010)
library(tictoc)
# Simulamos Newton (asegúrate de que Newton sea un vector numérico)
# Newton <- c(...)
tic("Tiempo algoritmo 1 Newton:")
total <- 0
valor_final <- length(Newton)
for (i in 1:valor_final) {
total <- total + i
total
}
toc()## Tiempo algoritmo 1 Newton:: 0.048 sec elapsed
## [1] 510555
Aclaración, tuvimos que instalar previamente la libreria tictoc para que el sistema pueda contar el tiempo que se demoro el programa. La instalación de las librerias es mediante: “tools”->“Instal Packages” y elegir la libreria deseada.
El segundo método se basa en usar la formula de la progresión aritmetica tambien conocida como la fórmula de Gauss. La ventaja de este metodo es que no es necesario crear un vector ni ningun otro problema, simplemente con una fórmula matemática.
library(tictoc)
tic("Tiempo algoritmo 2 Newton:")
inicio<- 1
final <-1010
newton2 <- (final*(final+1))/2
toc()## Tiempo algoritmo 2 Newton:: 0.002 sec elapsed
## [1] 510555
Ademas este metodo con este método se puede generalizar aplicando la fórmula general
## [1] 510555
Donde:
Inicio es el primer número.
Final es el último número.
n es la cantidad total de términos que estás sumando.
| Metodo | Ventaja | Desventaja |
|---|---|---|
| Iterativo | Mas intuitivo | Programacion mas extensa y mas lento |
| Formula | Mas rapido y facil de programar | Conocimiento previo en caso de no poder buscar la formula |