Created
September 4, 2021 19:42
-
-
Save JavierSolis/b1b7e7cda1f73f97d8cbd90084cc35e3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # PRIMERA SOLUCION DEL PROBLEMA | |
| # Python code to demonstrate math.factorial() | |
| """ | |
| para que no quede una array super largo | |
| convendria una estructura de dictionario | |
| para darles mas peso como un grafo con pesos | |
| asi el array queda fijo y solo queda multiplicar los pesos segun como | |
| valla avanzando | |
| """ | |
| def getLetterIndices(indice,source,letter): | |
| array_result=[] | |
| for i in range(indice+1,len(source)): | |
| #if i<=indice: | |
| # continue | |
| if letter==source[i]: | |
| array_result.append(i) | |
| return array_result | |
| source = "caattcttattacaactaacaaactcaattttcatactcctcttcaactattttaaaccataattattccctacacattcaaacaattccatctacatcacaacttcacttcctaataaaccaatccacatatcatattactctcataccaaataatccaccatattacatccctatttcatcactatactatattaacctcacaatttccattacacaacctaaacttcacttatacccaaaaacctttaccaaccctacactccaacacatactaacaatattacaccacctaccaacataaaatcaactcttccaattaaaaacactctcaaacactccacataacactattacacacctatttaccatcattccacattcacactcaatctcactctctaaaacactaaaatctttcctctcacctctattttcttttattttacttactaccaaaaactaatacacctctctactctaacaaacttctcttacat" | |
| route = "cat" | |
| #por indice desde la ultima letra | |
| # | |
| print(len(source)) | |
| number_path=0 | |
| partsIni = getLetterIndices(-1,source,route[0]) | |
| if len(partsIni)==0: | |
| print(0) | |
| print(partsIni) | |
| for i in range(1,len(route)): | |
| new_parts = [] | |
| for j in range(0,len(partsIni)): | |
| partial_parts = getLetterIndices(partsIni[j],source,route[i]) | |
| print(len(partial_parts)) | |
| if len(partial_parts)==0: | |
| continue | |
| new_parts = new_parts + partial_parts | |
| partsIni = new_parts | |
| print ( len(partsIni)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Python code to demonstrate math.factorial() | |
| """ | |
| para que no quede una array super largo | |
| convendria una estructura de dictionario | |
| para darles mas peso como un grafo con pesos | |
| asi el array queda fijo y solo queda multiplicar los pesos segun como | |
| valla avanzando | |
| """ | |
| source = "caattcttattacaactaacaaactcaattttcata" | |
| route = "cat" | |
| class Nodo: | |
| indice = 0 | |
| peso = 0 | |
| def getLetterIndices(peso_anterior, old_dictionary, new_dictionary, indice,source,letter): | |
| dicc_result={} | |
| # peso_anterior = 0 | |
| for i in range(indice+1,len(source)): | |
| #if i<=indice: | |
| # continue | |
| if letter==source[i]: | |
| key = "ind_{}".format(i) | |
| if key in old_dictionary: | |
| #print(key,"PESO_OLD:",old_dictionary[key]['peso']) | |
| peso_anterior = peso_anterior+old_dictionary[key]['peso'] | |
| if key in new_dictionary: | |
| #print(key,"PESO_NEW:",new_dictionary[key]['peso']) | |
| peso_anterior = peso_anterior+new_dictionary[key]['peso'] | |
| dicc_result[key] = { | |
| 'indice' : i, | |
| 'peso' : peso_anterior | |
| } | |
| return dicc_result | |
| nodos = {} | |
| #por indice desde la ultima letra | |
| # | |
| print(len(source)) | |
| number_path=0 | |
| partsIni = getLetterIndices(1,nodos,nodos,-1,source,route[0]) | |
| if len(partsIni)==0: | |
| print(0) | |
| print("letter:",route[0]) | |
| for key in partsIni: | |
| print(key,partsIni[key]) | |
| for i in range(1,len(route)): | |
| new_dicc = {} | |
| for key in partsIni: | |
| partial_dicc = getLetterIndices( | |
| partsIni[key]['peso'], | |
| partsIni, | |
| new_dicc, | |
| partsIni[key]['indice'], | |
| source, | |
| route[i] | |
| ) | |
| new_dicc.update(partial_dicc) | |
| print("letter:",route[i]) | |
| for key in new_dicc: | |
| print(key,new_dicc[key]) | |
| partsIni = new_dicc | |
| print ("COUNT NODO:", len(partsIni)) | |
| print(partsIni) | |
| count_rutas = 0 | |
| for key in partsIni: | |
| count_rutas = count_rutas + partsIni[key]['peso'] | |
| print ("RUTAS:",count_rutas) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment