In this question, write a program testing how the efficiency of double hashing varies when using different prime numbers for its hash functions. Double hashing uses two hash functions, one for computing the initial slot and another one for computing the step size of the probe sequence:

hash1(key) = key % prime1 (note: prime1 is the hash table size) hash2(key) = prime2 – key % prime2

In this exercise we investigate how the performance of the hash table changes when using different values for prime1 and prime2.

Task 1: Complete the method readRecords in a pthon file such that it reads a list of student records from the file in the argument and stores them in a list of tuples (StudentID, Name)

Test:

1712 Albert

1703 Benny

1799 Henry

1735 Jessica

1722 Lucas

1701 Luke

1757 William

1777 Jenny

1783 Lucia

1764 Venus

1718 Felicitas

Output:

Number students: 11

Students: [(1712, ‘Albert’), (1703, ‘ Benny’), (1799, ‘Henry’), (1735, ‘Jessica’)] (etc.)

Task 2: Complete the method primes(m,n) in a python file such that it returns a list of all prime numbers between m and n. If m and/or n are prime numbers they should be included in the list.

Test:

(students.txt)

1712 Albert

1703 Benny

1799 Henry

1735 Jessica

1722 Lucas

1701 Luke

1757 William

1777 Jenny

1783 Lucia

1764 Venus

1718 Felicitas

Output:

Prime number between 11 and 33: [11, 13, 17, 19, 23, 29, 31]

Prime number between 1 and 10: [2, 3, 5, 7]

And there is my code for this question, can anyone help get the correct output?

from HashTable import HashTable

def primes(m,n):

primes_list = []

for number in range(m, n+1):

for i in range(2, number):

if (number % i) == 0:

break

else:

primes_list.append(number)

return primes_list

def readRecords(filepath):

mylist = []

file = open(‘Students.txt’,’r’)

line = file.readlines()

file.close()

for i in line:

tmp = i.split(‘ ‘)

mylist.append((tmp[0],tmp[1]))

return mylist

## Expert Answer

def primes(m,n): primes_list = [] for number in range(m, n+1): flag=True for i in range(2, number): if (number % i) == 0: flag=False break if(number!=1 and flag==True): primes_list.append(number) return primes_list def readRecords(filepath): mylist = [] file = open(filepath,’r’) line = file.readlines() file.close() c=0 for i in line: tmp = i.split(‘ ‘) mylist.append((int(tmp[0]),tmp[1][:len(tmp[1])-1])) c+=1; print “Number of Students:: “, c return mylist students=readRecords(‘Students.txt’); |