src/string_hash.py
author Eugen Sawin <sawine@me73.com>
Mon, 20 Jun 2011 20:29:03 +0200
changeset 4 7301096bb430
permissions -rw-r--r--
Chained hashing.
sawine@0
     1
"""
sawine@0
     2
Name: string_hash -  a string hashing program
sawine@0
     3
Description: Basic string hashing program according to Theory I lecture.
sawine@0
     4
Author: Eugen Sawin <sawine@informatik.uni-freiburg.de>
sawine@0
     5
"""
sawine@0
     6
sawine@0
     7
def main():    
sawine@0
     8
    args = parse_arguments()
sawine@0
     9
    for string in args.strings.split():
sawine@0
    10
        print "%s: %i" % (string, hash(string, args.m))
sawine@0
    11
sawine@0
    12
def hash(string, m):
sawine@0
    13
    return sum(map(ord, string)) % m   
sawine@0
    14
sawine@0
    15
from argparse import ArgumentParser
sawine@0
    16
sawine@0
    17
def parse_arguments():
sawine@0
    18
    parser = ArgumentParser(description="Returns the hash for given string and m.")
sawine@0
    19
    parser.add_argument("strings", help="strings") 
sawine@0
    20
    parser.add_argument("m", type=int, help="m value")
sawine@0
    21
    return parser.parse_args()
sawine@0
    22
sawine@0
    23
if __name__ == "__main__":
sawine@0
    24
    main()