Question

def hasht (key: str, base: int, table: int) -> int: TI Universal Hash function -post: returns a valid position (0 <= value <

   

Given the above hash function, when using a base=250726 and tablesize=250767, we get alot of collisions and very long probing chains. This results in a longer running time.

Why do using these numbers causes the mentioned effect??

Please answer in details with full explanation
thank you

0 0
Add a comment Improve this question Transcribed image text
Answer #1

I hope what you specified as tablesize is same as the variable table in the code above.

I single word the answer is, the base value should be greater than the tablesize of avoid collision.

Explenation :

I will try to explain this concept with a simple example.

Consider, you have a basket of 10 balls numbered as 1,2,3 etc. and you need to pick 5 balls with replacement. That is, you will take one ball, record the number and put it in the basket itself. Repeat this for 5 times to get the result.

In this case the capacity is 10 and the table size is 5(just saying an example). Here the chance of taking the same ball again (collilsion) is not mandatory,(sometimes it can happen: probalitity is 0.5)

More technical explenation

But when the table size becomes higher than the base,

say,

number of balls to pick (tablesize) = 15

total number of balls in basket( base) = 10

In this case it is sure that, for atleast once, the same ball will be picked(collision will happens).

There is a similar theorem called "Piegion hole principle in mathematics"

More technical explenation:

consider the line in the for loop, which calculated the hash value,

value = (value * base + ord(c)) % table

Here we are redicing the value , up to the value of "table" using the modulus operation("%")

ie, what ever the value of "(value * base + ord(c))" it will be fitted to the size of "table"

for understanding easily,

let

table = 10

and

(value * base + ord(c)) = 123

therefore : " (value * base + ord(c)) % table" will be equal to 3

That is the reason for the collision to happens in the above given values in the quesion.

____________________________________

Hope you understood , post a comment below, if have more doubt in the explenations.

Thank you

Add a comment
Know the answer?
Add Answer to:
    Given the above hash function, when using a base=250726 and tablesize=250767, we get alot of...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • You have a hash table of length 7 (tablesize 7). You are given a hash function...

    You have a hash table of length 7 (tablesize 7). You are given a hash function f(x)-x % tablesize, where x is the value to be hashed and fix) is the hash address. Quadratic probing is used to resolve the collisions. The hash function receives the input 40, 26, 15, 12, 5, 17) in that order. Place each number in hash table in its correct address. The first two values are already placed in their correct positions If there isn't...

  • C++ question: Using a standard dictionary, and a table size that approximates a load factor of...

    C++ question: Using a standard dictionary, and a table size that approximates a load factor of 1, compare the number of collisions produced by the hash function in Figure 5.4 and the hash function in Figure 5.55. (Please program in C++ with explanations) /** Figure 5.4 * A hash routine for string objects. */ unsigned int hash( const string & key, int tableSize ) { unsigned int hashVal = 0; for( char ch : key ) hashVal = 37 *...

  • 1. Given a hash table with size 10, hash function is hash(k) = k % 10,...

    1. Given a hash table with size 10, hash function is hash(k) = k % 10, and quadratic probing strategy is used to solve collisions. Please insert the keys 19, 68, 59, 20, 32, 88, 56 in the hash table. 2. Let T be a binary tree with 31 nodes, what is the smallest possible height of T? What is the largest possible height of T?

  • Follow the TODOs and complete the insertItem(), searchItem() and printTable() functions in hash.cpp. The hash function...

    Follow the TODOs and complete the insertItem(), searchItem() and printTable() functions in hash.cpp. The hash function has already been implemented for you. // hash.CPP program to implement hashing with chaining #include<iostream> #include "hash.hpp" using namespace std; node* HashTable::createNode(int key, node* next) { node* nw = new node; nw->key = key; nw->next = next; return nw; } HashTable::HashTable(int bsize) { this->tableSize= bsize; table = new node*[tableSize]; for(int i=0;i<bsize;i++) table[i] = nullptr; } //function to calculate hash function unsigned int HashTable::hashFunction(int key)...

  • Assume data is to be stored in a hash table using the following keys: 62,77.26, 42,...

    Assume data is to be stored in a hash table using the following keys: 62,77.26, 42, 52,76 Assume the hash table size is 7, the hash function used is the modulo function i.e. h/key) = key % table_size, and collisions are handled using linear probing. What's the content of the table after all keys are mapped to the hash table? (List keys starting from table index 0 and on Separate numbers by a comma and a single space, and indicate...

  • IN JAVA LANGUAGE: For this lab you are required for implement the following methods: 1. public...

    IN JAVA LANGUAGE: For this lab you are required for implement the following methods: 1. public QuadraticProbingHashTable( int size ): As the signature of this method suggests, this is a constructor for this class. This constructor will initialize status of an object from this class based on the input parameter (i.e., size). So, this function will create the array HashTable with the specified size and initialize all of its elements to be null. 2. public int hash(int value, int tableSize...

  • Create a hash table class/struct.in C++ Define an array that holds 27 elements. Define a function...

    Create a hash table class/struct.in C++ Define an array that holds 27 elements. Define a function called Hash(int) -This function returns the modulo of that int by the size of the table (array). Define an add function that takes an integer. -This function takes the integer, determines the hash of that number by calling the above hash function, then adds it to the table using linear probing for collision resolution. Define a function that looks up a value, it takes...

  • Type up and get the Hash table on pages 19 - 22 to work. Show your...

    Type up and get the Hash table on pages 19 - 22 to work. Show your sample test run at the bottom of your code using a multiline comment I typed everything but the code is not working please help me fix the mistakes. These are pages 19-22. The code I have: #include <iostream> #inlcude <iomanip> #include <stack> #include <vector> #include <cstdlib> #include <ctime> using namespace std; //////////////////////////////HASH TABLE/////////////////////////////////////////////// //hash.cpp //demonstrate hash table with linear probing /////////////////////////////////////////////////////////////////////////////////////// class DataItem {...

  • #3 [3 points] Sketch a hash table of size N=11, where the hash function is hash(key) = key mod N and quadratic probing is used to resolve collisions, after the following elements are inserted: 20, 42,...

    #3 [3 points] Sketch a hash table of size N=11, where the hash function is hash(key) = key mod N and quadratic probing is used to resolve collisions, after the following elements are inserted: 20, 42, 45, 49, 62, 72, 95. The probes are based on this equation: (H+c1∗i+c2∗i2)mod(N) and c1=1, c2=1. If direct hashing was used to store the same elements as the previous problems (20, 42, 45, 49, 62, 72, 95), what should be the minimum size of...

  • Given the hash function: H(key) = key/2; Hash table size = 7 and   index = H(key)%...

    Given the hash function: H(key) = key/2; Hash table size = 7 and   index = H(key)% Hash table size Show how the hash table below looks after adding the following (key, value) pairs, (illustrate your strategy for collision handling)   (3000, “A”) (3232, “B”) (1223, “C”) (4569, “K”) (6767, “F”) (1234, “P”) (2324, “F”) (3422, “G”) (1231, “R”) index Key Value 0 1 2 3 4 5

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT