← Back tabelaHash.py | tabelaHash.py.TabelaHashSondagemLinear.funcao_hash -- 2
Source
def funcao_hash(self, chave):
    """
        Função de hash manual e previsÃ\xadvel.

        Ideia:
        - se a chave for string, somamos os códigos ASCII dos caracteres;
        - se a chave for inteiro, usamos o próprio valor;
        - caso contrário, convertemos para string e somamos os caracteres.

        Isso NÃO é ideal para uso real, mas é ótimo para ensino,
        porque permite prever facilmente onde cada chave será mapeada.
        """
    if isinstance(chave, int):
        return chave % self.capacidade
    if isinstance(chave, str):
        soma = 0
        for caractere in chave:
            soma += ord(caractere)
        return soma % self.capacidade
    soma = 0
    for caractere in str(chave):
        soma += ord(caractere)
    return soma % self.capacidade
CFG
Zoom + Zoom - Reset
0 0 BB Expr (+0) 1 1 IF If (+0) 0->1 5 5 COND isinstance(chave, int) 1->5 cond 2 2 THEN Return (+0) 4 4 IF If (+0) 10 10 COND isinstance(chave, str) 4->10 cond 5->2 T 5->4 7 7 THEN Assign (+0) 11 11 FOR_PRE For (+0) 7->11 9 9 JOIN Assign (+0) 16 16 FOR_PRE For (+0) 9->16 10->7 T 10->9 12 12 FOR_ITER For (+0) 11->12 for:iter 13 13 FOR_BODY AugAssign (+0) 12->13 Next 14 14 FOR_AFTER Return (+0) 12->14 Not_Next 13->12 next 13->14 No_Next 17 17 FOR_ITER For (+0) 16->17 for:iter 18 18 FOR_BODY AugAssign (+0) 17->18 Next 19 19 FOR_AFTER Return (+0) 17->19 Not_Next 18->17 next 18->19 No_Next
Blocks
Covered: 0, 1, 2, 4, 5, 7, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19
Missed:
Edges
Covered: (0, 1), (5, 2), (1, 5), (10, 7), (4, 10), (7, 11), (11, 12), (12, 13), (13, 12), (12, 14), (13, 14), (9, 16), (16, 17), (17, 18), (18, 17), (17, 19), (18, 19), (5, 4), (10, 9)
Missed:
Essential arcs
Covered: (12, 14), (13, 12), (13, 14), (17, 19), (18, 17), (18, 19), (5, 2)
Missed:
Edge Pairs
Covered: (0, 1, 5), (1, 5, 2), (1, 5, 4), (10, 7, 11), (10, 9, 16), (11, 12, 13), (11, 12, 14), (12, 13, 12), (12, 13, 14), (13, 12, 13), (16, 17, 18), (16, 17, 19), (17, 18, 17), (17, 18, 19), (18, 17, 18), (4, 10, 7), (4, 10, 9), (5, 4, 10), (7, 11, 12), (9, 16, 17)
Missed:
Prime Paths
Covered: (0, 1, 5, 2), (0, 1, 5, 4, 10, 7, 11, 12, 13), (0, 1, 5, 4, 10, 7, 11, 12, 14), (0, 1, 5, 4, 10, 9, 16, 17, 18), (0, 1, 5, 4, 10, 9, 16, 17, 19), (12, 13, 12), (13, 12, 13), (13, 14), (17, 18, 17), (18, 17, 18), (18, 19)
Missed: