import random
def sgen(minL: int, maxL: int, dictionary: str):
# Losujemy długość słowa z przedziału [minL, maxL]
length = random.randint(minL, maxL)
# Tworzymy słowo wybierając losowe znaki z dictionary
word = ''.join(random.choice(dictionary) for _ in range(length))
return word
# --- Realizacja polecenia ---
# 1. Generujemy 25 000 słów
n = 25000
words = [sgen(5, 10, 'qazwsxedcrfvtgby') for _ in range(n)]
# 2. Znajdujemy słowa, które się powtórzyły
# Używamy słownika do zliczania wystąpień
word_counts = {}
for w in words:
word_counts[w] = word_counts.get(w, 0) + 1
# Filtrujemy tylko te słowa, które wystąpiły więcej niż raz
duplicates = {word: count for word, count in word_counts.items() if count > 1}
# --- Wyświetlenie wyników ---
print(f"Wygenerowano {n} słów.")
print(f"Liczba unikalnych słów, które mają duplikaty: {len(duplicates)}")
print("\nPrzykładowe powtórzone słowa (słowo: liczba wystąpień):")
# Wyświetlamy pierwsze 10 powtórzeń (jeśli istnieją)
for i, (word, count) in enumerate(duplicates.items()):
if i < 10:
print(f"{word}: {count}")
else:
break