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 kolejnosci. Prawidlowe mieszanie produkuje kazda mozliwa permutacje z rownym prawdopodobienstwem.

Randomizacja rozni sie od sortowania — sortowanie daje deterministyczny wynik, randomizacja za kazdym razem inny.

Jak dziala 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
  • Kazdy element jest dotykany dokladnie raz — algorytm dziala w czasie O(n)

Wypróbuj za darmo — bez rejestracji

Zrandomizuj liste →

Typowe zastosowania

Randomizacja jest uzywana w wielu scenariuszach.

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

Wskazowki i najlepsze praktyki

Uzyskuj uczciwe i powtarzalne wyniki.

  • Uzywaj sprawdzonego algorytmu — Fisher-Yates to zloty standard
  • Rozum pseudolosowosc — randomizery przegladarkowe uzywaja PRNG
  • Obsługuj duplikaty swiadomie — kazdy duplikat jest traktowany jako oddzielny element

Czesto zadawane pytania

Czy algorytm Fishera-Yatesa jest naprawde uczciwy?

Tak, przy prawidlowej implementacji z rownomiernym zrodlem losowosci, produkuje kazda mozliwa permutacje z dokladnie takim samym prawdopodobienstwem.

Czy moge odtworzyc ten sam wynik?

Do odtworzenia potrzebujesz generatora z ziarnem (seed). Wiekszosc narzedzi przegladarkowych uzywa generatorow bez ziarna.

Co sie dzieje z duplikatami?

Duplikaty sa mieszane niezaleznie. Algorytm traktuje kazdy element wedlug pozycji, nie wartosci.

Powiązane narzędzia