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)