Add trees and hash table stuff
This commit is contained in:
parent
f8b2dca3a3
commit
a63f6add94
7 changed files with 257 additions and 3 deletions
20
notes/fund-prog-3/chapter-5/programs/mult_str_hashing.py
Normal file
20
notes/fund-prog-3/chapter-5/programs/mult_str_hashing.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
import sys
|
||||
|
||||
initial = int(sys.argv[-4])
|
||||
multiplier = int(sys.argv[-3])
|
||||
size = int(sys.argv[-2])
|
||||
string = sys.argv[-1]
|
||||
|
||||
|
||||
def multiplicative_string_hash(string):
|
||||
string_hash = initial
|
||||
hash_multiplier = multiplier
|
||||
|
||||
for character in string:
|
||||
string_hash *= hash_multiplier
|
||||
string_hash += ord(character)
|
||||
|
||||
return string_hash % size
|
||||
|
||||
|
||||
print(multiplicative_string_hash(string))
|
24
notes/fund-prog-3/chapter-5/programs/num_hashing.py
Normal file
24
notes/fund-prog-3/chapter-5/programs/num_hashing.py
Normal file
|
@ -0,0 +1,24 @@
|
|||
import sys
|
||||
|
||||
size = int(sys.argv[-5])
|
||||
num = int(sys.argv[-4])
|
||||
var_1 = int(sys.argv[-3])
|
||||
var_2 = int(sys.argv[-2])
|
||||
i = int(sys.argv[-1])
|
||||
|
||||
def quadratic():
|
||||
h = num % size
|
||||
return (h + (var_1 * i) + (var_2 * i * i)) % size
|
||||
|
||||
def mod_size():
|
||||
return num % size
|
||||
|
||||
def h2():
|
||||
return var_2 - (num % var_2)
|
||||
|
||||
def combined():
|
||||
return (mod_size() + (i * h2())) % size
|
||||
|
||||
func = combined
|
||||
|
||||
print(func())
|
Loading…
Add table
Add a link
Reference in a new issue