tengo este programa que da al usuario el calculo de complejidad algoritmica de tres opciones dadas en el menú, 10, 100 y 1000. Tengo el problema que cuando voy a dar el print no se como llamar la opcion del usuario y calcularlo. Hice el programa de otra forma dando un ciclo if a cada opción del menú pero me pareció muy largo y repetitivo. Entonces decidí por hacerlo con un class y varias funciones, y es ahí donde quede quieto sin saber que hacer Aprecio la ayuda en este pequeño proyecto. Gracias
import math
class complejidad_algoritmica(): def init(self, n): self.n = n
def constante(self):
return 1
def lineal(self):
return self.n
def logaritmica(self):
return math.log10(self.n)
def log_lineal(self):
return self.n * math.log10(self.n)
def polinomial(self):
return self.n ** 2
def exponencial(self):
return 2 ** self.n
def run(): menu = """ para entender mejor el BIG O NOTATION
a. 10
b. 100
c. 1000
Elije una opción de esta lista: """
opcion = input(menu)
#n = [10, 100, 1000]
for i in opcion:
complejidad = complejidad_algoritmica(opcion)
if opcion == 'a' or opcion == 'b' or opcion == 'c':
print(f'O(1) es {complejidad.constante()}')
print(f'O(n) es igual {complejidad.lineal()}')
print(f'O(log n) es {complejidad.logaritmica()}')
print(f'O(n log n) es {complejidad.log_lineal()}')
print(f'O(n**2) es igual a {complejidad.polinomial()}')
print(f'O(2**n) es igual a {complejidad.exponencial()}')
else:
print('Elige una opción válida: a, b, c')
if name == 'main': run()
Aucun commentaire:
Enregistrer un commentaire