Перемішувач списку
Перемішайте імена, завдання або інші елементи списку у випадковому порядку. Введіть свої елементи, виберіть роздільник і перегляньте переупорядкований список.
Генератор випадкового порядку для списків
Формула перемішувача списку
Де:
- \(T\) — текст, введений у поле «Елементи списку».
- \(s\) — вибраний роздільник.
- \(L\) — список після розбиття тексту, видалення пробілів на початку та в кінці кожного елемента і відкидання порожніх елементів.
- \(n\) — кількість елементів у \(L\); позиції нумеруються від \(0\) до \(n-1\).
- \(U\) — нове псевдовипадкове значення від \(0\) до \(1\) (не включно) для кожного обміну.
Калькулятор перемішує решту елементів, рухаючись від останньої позиції до першої. На кожній позиції \(i\) він міняє місцями цей елемент з елементом на позиції \(j\) від \(0\) до \(i\).
Перемішувач списку – приклад обчислення
Приклад: у полі «Елементи списку» містяться типові значення Apple, Banana та Orange на окремих рядках, а роздільник установлено на «Новий рядок». Один із можливих варіантів перемішування обирає \(j=0\) для обох обмінів.
\[ [\text{Apple},\text{Banana},\text{Orange}]\xrightarrow{i=2,\,j=0}[\text{Orange},\text{Banana},\text{Apple}] \]
\[ [\text{Orange},\text{Banana},\text{Apple}]\xrightarrow{i=1,\,j=0}[\text{Banana},\text{Orange},\text{Apple}] \]
Результат: Banana, Orange, Apple, показані на окремих рядках. Це лише один із можливих результатів; інше перемішування може дати інший порядок.
Як користуватися калькулятором
- Введіть або вставте свої записи в поле «Елементи списку». Типовий приклад містить Apple, Banana та Orange на окремих рядках.
- Установіть роздільник, що відповідає символу між вашими записами: «Новий рядок», пробіл, ;, -, | або ,.
- Запустіть калькулятор і зчитайте результат у полі «Випадковий список». Його записи використовують вибраний роздільник, причому результати з «Новим рядком» показуються на окремих рядках.
- Запустіть калькулятор ще раз, якщо потрібен інший можливий порядок. Якщо необхідно врахувати всі записи, звірте результат із початковим списком.
Що робить перемішувач списку?
Перемішувач списку змінює порядок записів, не змінюючи навмисно їхній зміст. Він корисний, коли сама послідовність має значення: розподіл черги виступів, зміна порядку практичних запитань, впорядкування завдань або визначення того, чия назва буде першою. Для типового списку з трьох елементів результат містить ті самі три назви фруктів, але їхній порядок щоразу може відрізнятися.
Спочатку калькулятор розбиває текст відповідно до роздільника. Він видаляє пробіли на початку та в кінці кожного отриманого запису і відкидає записи, які стали порожніми після видалення пробілів. Потім до решти записів застосовується перемішування Фішера–Єтса. На кожному кроці обирається позиція з тієї частини списку, яка ще не зафіксована, після чого два записи міняються місцями.
Для списку з \(n\) різних записів існує \(n!\) можливих порядків. Коректно реалізоване перемішування Фішера–Єтса дає цим порядкам однакові шанси, якщо його випадкові вибори рівномірні. Тут вибори беруться з псевдовипадкового генератора JavaScript, тому не слід вважати результат незалежно перевіреним жеребкуванням. Окремий порядок може траплятися більше одного разу, і новий запуск не гарантовано буде суттєво відрізнятися від попереднього.
Практичні поради та обмеження
Виберіть роздільник до інтерпретації результату. З «Новим рядком» кожен рядок вважається одним записом, тож імʼя на кшталт «Олександр Річенко» залишається цілісним. З пробілом записи розділяються пробілами; те саме імʼя стає двома записами. Пробіл також розглядає табуляції та розриви рядків як роздільники. Інші варіанти розбивають текст точно за символом, указаним у меню.
Роздільник усередині запису розібʼє його. Наприклад, якщо вибрати ,, запис «Smith, Jane» стане двома записами. Якщо вибрати -, імʼя з дефісом може бути розібите. Використовуйте «Новий рядок», коли записи містять розділові знаки або пробіли, і розміщуйте один повний запис на кожному рядку.
Повторювані записи не видаляються. Якщо «Apple» трапляється двічі, воно двічі зʼявиться у випадковому списку й посідає дві позиції під час перемішування. Щоб перед перемішуванням залишити лише по одному примірнику кожного рядка, спочатку скористайтеся засобом видалення повторюваних рядків. Порожні записи, на відміну від повторюваних, відкидаються.
Цей інструмент не зберігає випадкове початкове значення (seed) і не забезпечує контрольний журнал. Для конкурсу або іншого відповідального відбору заздалегідь визначіть допустимі записи та правила й використовуйте процес, який відповідає необхідним стандартам прозорості та безпеки. Для звичайного впорядкування списків ви можете порівняти перемішаний список із відсортованим за алфавітом списком, щоб перевірити назви, або скористатися зворотним списком, коли потрібен точний протилежний порядок, а не випадковий.
Часті запитання
Як можна чесно перемішати список вручну?
Напишіть кожен запис на однаковому папірці, ретельно перемішайте папірці в ємності, а потім витягайте їх по одному, не повертаючи назад. Порядок витягування й буде вашим випадковим списком. Зробіть папірці однаковими на вигляд і на дотик і заздалегідь вирішіть, чи вважаються повторювані імена окремими записами.
Чи можна вважати перший елемент перемішаного списку переможцем?
Так, якщо кожен допустимий учасник зустрічається рівно один раз, у кожного однаковий шанс опинитися першим. Якщо імʼя зустрічається двічі серед пʼяти записів, у цього імені два шанси з пʼяти. Для розіграшу призу спочатку перевірте записи та правила участі; цей інструмент не призначений бути системою жеребкування з можливістю перевірки.
Чому мій список після перемішування залишився в тому ж порядку?
Незмінений порядок — це можливий випадковий результат, а не обовʼязково помилка. Для трьох різних записів це один із шести можливих порядків, тож його теоретична ймовірність за рівномірного перемішування становить \(1/6\). Для коротких списків повторення особливо помітні. Запустіть перемішування ще раз, якщо вам просто потрібен інший порядок.
Скільки різних порядків можливе, якщо в моєму списку є повтори?
Повтори зменшують кількість помітно різних порядків. Поділіть \(n!\) на факторіал кількості кожного запису, що повторюється. Наприклад, пʼять записів, серед яких дві літери A і дві літери B, мають \(5!/(2!\,2!)=30\) помітно різних порядків. Два примірники кожного запису все одно посідають окремі позиції під час перемішування.
Що станеться, якщо я введу лише порожні рядки або роздільники?
Результат буде порожнім, оскільки немає непорожніх записів для перемішування. Введення з одним непорожнім записом повертає цей запис без змін. Якщо ви очікували більше елементів, перевірте, що вибраний роздільник відповідає вашому введенню і що кожен передбачений запис містить текст, а не лише пробіли.
Чи можу я відтворити попередній випадковий порядок?
Надійно — ні. Калькулятор не дозволяє ввести початкове значення (seed), тож ви не зможете пізніше запросити ту саму послідовність випадкових виборів. Скопіюйте або збережіть отриманий список, якщо цей порядок вам знадобиться знову. Майбутній запуск може збігтися з ним випадково, особливо для короткого списку, але контролю повторного відтворення немає.
Як за допомогою перемішаного списку створити групи чи пари?
Перемішайте повний список, а потім розподіліть послідовні записи по групах за заздалегідь обраним правилом. Для пар беріть записи 1–2, 3–4 і так далі; непарна кількість залишить один запис без пари. Це робить склад груп випадковим, але не враховує навички, вподобання чи інші обмеження, тож якщо це має значення, перевірте групи після розподілу.