Skip to main content
CheckTown
Generatory

Randomizer listy: Uczciwe mieszanie algorytmem Fishera-Yatesa

Opublikowano 5 min czytania
W tym artykule

Czym jest randomizacja listy?

Randomizacja listy to proces przestawiania elementow w losowej kolejności. Prawidłowe mieszanie produkuje kazda mozliwa permutacje z rownym prawdopodobieństwem.

Randomizacja różni sie od sortowania — sortowanie daje deterministyczny wynik, randomizacja za każdym razem inny.

Jak działa algorytm Fishera-Yatesa

Algorytm Fishera-Yatesa jest standardem do generowania rownomiernie losowych permutacji.

  • Zacznij od ostatniego elementu — wybierz losowy indeks od 0 do n-1 i zamien
  • Przejdz do przedostatniego — wybierz losowy indeks od 0 do n-2; powtorz
  • Każdy element jest dotykany dokładnie raz — algorytm działa w czasie O(n)

Wypróbuj za darmo — bez rejestracji

Zrandomizuj liste →

Typowe zastosowania

Randomizacja jest używana w wielu scenariuszach.

  • Losowy przydzial — dzielenie uczestnikow na grupy do testow A/B bez uprzedzen
  • Losowanie nagrod — mieszanie imion w celu sprawiedliwego wyboru zwyciezcow
  • Kolejność pytan egzaminacyjnych — randomizacja w celu zmniejszenia sciagania
  • Losowe odtwarzanie — przestawianie piosenek, zadan lub fiszek

Wskazowki i najlepsze praktyki

Uzyskuj uczciwe i powtarzalne wyniki.

  • Używaj sprawdzonego algorytmu — Fisher-Yates to zloty standard
  • Rozum pseudolosowosc — randomizery przeglądarkowe używają PRNG
  • Obsługuj duplikaty świadomie — każdy duplikat jest traktowany jako oddzielny element

Często zadawane pytania

Czy algorytm Fishera-Yatesa jest naprawde uczciwy?

Tak, przy prawidłowej implementacji z rownomiernym zrodlem losowości, produkuje kazda mozliwa permutacje z dokładnie takim samym prawdopodobieństwem.

Czy moge odtworzyc ten sam wynik?

Do odtworzenia potrzebujesz generatora z ziarnem (seed). Większość narzędzi przegladarkowych używa generatorow bez ziarna.

Co sie dzieje z duplikatami?

Duplikaty sa mieszane niezależnie. Algorytm traktuje każdy element według pozycji, nie wartości.

Powiązane narzędzia