Загрузка данных


import random


random.seed(1873)


elements = set()
while len(elements) < 49:
    num = random.randint(1000000, 9999999)
    elements.add(num)
elements = list(elements)

print("--- СГЕНЕРИРОВАННЫЕ ЭЛЕМЕНТЫ (49 чисел) ---")

for i in range(0, len(elements), 10):
    print(", ".join(map(str, elements[i:i+10])))
print("\n" + "="*50 + "\n")



t = 79
hash_table = [None] * t
steps=0
total_steps=0



def insert_quadratic(table, size, key):

    base_hash = key % size
    for i in range(size):
        idx = (base_hash + i**2) % size
        if table[idx] is None:
            table[idx] = key
            return i + 1
    return 0



for element in elements:
    steps= insert_quadratic(hash_table,t,element)
    total_steps += steps




print(f"--- ХЕШ-ТАБЛИЦА (Размер t = {t}) ---")
for index in range(t):
    value = hash_table[index]
    status = value if value is not None else "*пусто*"
    print(f"Индекс {index:2d}: {status}",end="\t\t")
    if (index +1) % 3 == 0:
        print()
print()
alpha= len(elements)/t
avg_steps=total_steps / len(elements)
print("Коэф заполненности:",alpha)
print("Среднее кол-во шагов:",avg_steps)