Skip to main content
CheckTown
Генератори

Рандомізатор списку: Чесне перемішування за Фішером-Єйтсом

Опубліковано 5 хв читання
У цій статті

Що таке рандомізація списку?

Рандомізація списку — це процес перестановки елементів у випадковому порядку. Правильне перемішування створює кожну можливу перестановку з рівною ймовірністю.

Рандомізація відрізняється від сортування — сортування дає детермінований результат, а рандомізація кожного разу дає інший.

Як працює алгоритм Фішера-Єйтса

Перемішування Фішера-Єйтса — стандартний алгоритм для генерації рівномірно випадкових перестановок.

  • Починайте з останнього елемента — виберіть випадковий індекс від 0 до n-1 і поміняйте
  • Перейдіть до передостаннього — виберіть випадковий індекс від 0 до n-2; повторіть
  • Кожен елемент обробляється рівно один раз — алгоритм працює за час O(n)

Спробуйте безкоштовно — реєстрація не потрібна

Рандомізувати список →

Типові випадки використання

Рандомізація використовується в багатьох сценаріях.

  • Випадковий розподіл — поділ учасників на групи для A/B тестування без упередження
  • Розіграші призів — перемішування імен для чесного вибору переможців
  • Порядок запитань на іспиті — рандомізація для зменшення списування
  • Перемішування плейлиста — перестановка пісень, завдань чи карток

Поради та найкращі практики

Отримуйте чесні та відтворювані результати.

  • Використовуйте перевірений алгоритм — Фішера-Єйтса є золотим стандартом
  • Розумійте псевдовипадковість — браузерні рандомізатори використовують ГПВЧ
  • Обробляйте дублікати свідомо — кожен дублікат обробляється як окремий елемент

Часті запитання

Чи справді перемішування Фішера-Єйтса чесне?

Так, при правильній реалізації з рівномірним джерелом випадковості кожна можлива перестановка має однакову ймовірність.

Чи можу я відтворити той самий результат?

Для відтворення потрібен генератор з початковим значенням (seed). Більшість браузерних інструментів використовують генератори без seed.

Що відбувається з дублікатами?

Дублікати перемішуються незалежно, як і унікальні елементи. Алгоритм працює з позицією, а не значенням.

Пов'язані інструменти