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.