def filoSfilacciato(elem, son): g = mkGraph(elem, "rand", son) listaMedi = mostNodes(g) if (debug): print("Nodi medi per piu' volte:") for elem in listaMedi: print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1]))
def frattale(elem, son): g = mkGraph(elem, "fractal", son) listaMedi = mostNodes(g) if (debug): print("Nodi medi per piu' volte:") for elem in listaMedi: print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1]))
if (debug): print("conta dei percorsi tra:{}".format(sonLevel)) path = 0 allNode = 0 # per ogni ramo conto il numero di nodi presenti in sonLevel; dunque ottengo il numero totale di nodi a quel livello for branch in sonLevel: if (debug): print("\tramo:{}".format(branch)) allNode += len(branch) if (debug): print("\tnodi totali presenti:{}".format(allNode)) # applico la formula per calcolare i cammini possibili al livello sonLevel for branch in sonLevel: if (debug): print("\tramo:{}".format(branch)) path += len(branch) * (allNode - len(branch)) allNode -= len(branch) if (debug): print("\tpercorsi contati:{}".format(path)) return path if __name__ == '__main__': if (debug): print("funzione per trovare quante volte il nodo n è medio in G") i = mkGraph(5000, "rand", 10) listNode = i.getNodes() i.print() print( "il nodo '{}' è medio {} volte di un percorsi minimi nel grafo".format( listNode[0].id, medNode(i, listNode[0])))
def main(): cmd = sys.argv if (len(cmd) == 1): helpPrint() exit(-1) if (cmd[1] == "h" or cmd[1] == "help"): helpPrint() exit(-1) elif (cmd[1] == "rand"): if (len(cmd) < 5): print( "!!!!ERROR!!! correct sintax for Random is:\n<Modalità><OutputPrint 1/0><nElem><nMaxSon>" ) exit(-1) g = mkGraph(int(cmd[3]), "rand") elif (cmd[1] == "fractal"): if (len(cmd) < 5): print( "!!!!ERROR!!! correct sintax for fractal is:\n<Modalità><OutputPrint 1/0><nElem><d-son>" ) print("\nLa corretta sintassi è:") helpPrint() exit(-1) g = mkGraph(int(cmd[3]), "fractal", int(cmd[4])) elif (cmd[1] == "star"): if (len(cmd) < 4): print( "!!!!ERROR!!! correct sintax for Star is:\n<Modalità><OutputPrint 1/0><nElem>" ) exit(-1) g = mkGraph(int(cmd[3]), "star") elif (cmd[1] == "linear"): if (len(cmd) < 4): print( "!!!!ERROR!!! correct sintax for Linear is:\n<Modalità><OutputPrint 1/0><nElem>" ) exit(-1) g = mkGraph(int(cmd[3]), "linear") elif (cmd[1] == "sfilacciatoRand"): if (len(cmd) < 4): print( "!!!!ERROR!!! correct sintax for sfilacciatoRand is:\n<Modalità><OutputPrint 1/0><nElem>" ) exit(-1) g = mkGraph(int(cmd[3]), "sfilacciatoRand", int(cmd[4])) elif (cmd[1] == "sfilacciato"): if (len(cmd) < 4): print( "!!!!ERROR!!! correct sintax for sfilacciato is:\n<Modalità><OutputPrint 1/0><nElem>" ) exit(-1) g = mkGraph(int(cmd[3]), "sfilacciato", int(cmd[4])) elif (cmd[1] == "asterisco"): if (len(cmd) < 4): print( "!!!!ERROR!!! correct sintax for asterisk is:\n<Modalità><OutputPrint 1/0><nElem>" ) exit(-1) g = mkGraph(int(cmd[3]), "asterisco", int(cmd[4])) else: print("SINTASSI IRRICONOSCIBILE RICEVUTO:\n\t{}".format(cmd[1:])) helpPrint() exit(-1) t = time.time() listaMedi = mostNodes(g) elapsed = time.time() - t if (bool(int(cmd[2]))): print("Nella forma {} i nodi medi di più percorsi sono:".format( cmd[1])) for elem in listaMedi: print("\tNodo {} medio per {} volte.".format(elem[0].id, elem[1])) print("\n\n\tIl grafo su cui è stato eseguito il codice è:") g.print() del g print("{},{}".format(int(cmd[3]), elapsed)) #output per creare grafici
if (debug): print("dentro if per nodo {}".format(node.id)) continue else: if (debug): print("dentro else per nodo {}".format(node.id)) med = medNode(grafo, node) maxMed = findBetterNode(med, node, maxMed) return maxMed def findBetterNode(numMed, node, savedNode): """ salva nodo e quante volte è medio solo se è maggiore o uguale di quello attuale :param numMed: :return: """ if (type(savedNode[0][0]) == None or savedNode[0][1] < numMed): savedNode = [[node, numMed]] elif savedNode[0][1] == numMed: savedNode.append([node, numMed]) return savedNode if __name__ == '__main__': g = mkGraph(2000, "rand", 500) listaNodi = mostNodes(g) print("Nodo/i medi per piu' volte:\n") for elem in listaNodi: print("Nodo {} medio per {} volte.\n".format(elem[0].id, elem[1]))