import random class Node: def __init__(self, x): self.x = x self.left = None self.right = None def insert(root, x): # TODO: inserați x în arbore pass def search_path_length(root, x): # TODO: calculați lungimea drumului până la x pass def average_search_path(n): """Construiește un BST dintr-o permutare aleatoare și măsoară media.""" perm = list(range(1, n + 1)) random.shuffle(perm) root = None for x in perm: root = insert(root, x) lengths = [search_path_length(root, x) for x in perm] return sum(lengths) / n def experiment(trials=2000, n=100): total = 0 for _ in range(trials): total += average_search_path(n) return total / trials for n in [10, 20, 50, 100, 200, 500, 1000]: avg = experiment(trials=1000, n=n) print(f"n = {n} → lungime medie ≈ {avg:.3f}")