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

Comments

No Comments