Як відбувається перетасування різних музичних плеєрів [закрито]


2

Мені було цікаво, чи може бути фіксований шаблон / алгоритм, який слід за різними музичними програвачами для переміщення списку відтворення. З моєї здогадки, я міг би зрозуміти, що ці медіаплеєри використовують однаковий алгоритм для перетасування. Я кажу так, що практично я експериментував з поведінкою перетасування функцій різних гравців в одному списку відтворення. Таким чином, якщо це так, то що це за алгоритм?

Знову ж, якщо мої здогадки неправильні, і кожен гравець використовує власний алгоритм перетасовки, то як я можу отримати ту саму послідовність пісень після перемішування від різних плеєрів із тим самим списком відтворення

Редагувати:

Моє питання - знати, чи всі музичні плеєри поділяють загальний алгоритм перетасування. якщо так, то який алгоритм? якщо ні, то як же я отримав ту саму послідовність пісень після переміщення одного і того ж плейлиста з мого nokia mobile 5233, 5300, VLC media Player, Windows Media Player тощо.


3
Вся справа в тому, що якщо це повинно бути "випадковим", то ви насправді не зможете сказати, який алгоритм використовується, якщо ви не отримаєте вихідний код або не запитаєте розробника. Звичайно, є медіаплеєри з відкритим кодом. Але швидкий Google виявляє щось подібне дуже часто використовується: en.wikipedia.org/wiki/Fisher-Yates_shuffle
James P

+1 Я думаю, ти маєш рацію. Важко точно сказати, який саме алгоритм дотримується. І я теж думаю, що найпоширеніший алгоритм - це Фішер-Йейтс. Дякую. Просто обрисуйте його у відповідь, щоб я міг її прийняти.
Мохсін Ахтар

навіть якщо алгоритми однакові, результат перетасовки повинен бути випадковим, я маю на увазі "ви не можете отримати однакову послідовність пісень після переміщення з різних програвачів з одним і тим самим списком відтворення", або немає необхідності переміщувати карт під час гри в карткові ігри.
LiuYan 刘 研

Відповіді:


1

Існує ряд різних алгоритмів перетасовки, серед яких Fisher-Yates є одним з найбільш популярних. Навіть якщо гравець використовує цей алгоритм, його реалізація буде залежати від ряду інших факторів (мова кодування, підтримка випадкових чисел). Якщо гравець безпосередньо не копіює код з іншої програми, це буде різним у реалізації.

Крім того, хоча більшість гравців "перетасовує" список відтворення, я бачив такі, які завжди випадковим чином вибирають наступну пісню для відтворення (в результаті одна і та ж пісня виконується двічі поспіль).

Дивно, що ви стверджуєте, що різні гравці "перемішують" один і той же список відтворення в одному порядку. Навіть використання одного і того ж алгоритму (або того ж гравця) повинно призводити до випадкового списку відтворення кожного разу, коли воно перетасовується.


1

З того, що я спостерігав на продуктах Apple, тоді як перетасовка має випадковий елемент для вибору того, який елемент буде грати далі, також з'являється рейтинг кожного елемента на основі історії відтворення, рейтингу користувача (зірок) та включення до списків відтворення. Елементи вищого рейтингу, швидше за все, відображатимуться раніше у перетасуванні.


1

Я робив невеликий медіа-плеєр для PSP деякий час тому (я ніколи його не повторював), і я реалізував функцію перетасування, як це:

  • Ви надаєте кожній пісні на музичному плеєрі непідписаний цілочисельний ідентифікатор, починаючи з 0 до n( nце кількість пісень у програвачі).
  • Генерує випадкове число , використовуючи поточний час (мс) плюс останню пісню ідентифікатор в якості насіння, зробити його цілим і модуль з n(кількістю пісень) |random(time+last_id)|%n. Таким чином, псевдовипадковий ідентифікатор знаходитиметься в діапазоні від 0 до, nі він не повториться, якщо проміжок між "перетасовками" буде меншим за мілісекунду, оскільки random(time)дасть таке ж число, якщо випадкове насіння ( timeу цьому випадку) також однакове число.
  • Зберігайте список mостанніх відтворених пісень, щоб нова псевдовипадкова вибрана пісня не повторювалася принаймні між mрізними піснями. Якщо нова пісня є у списку, повторіть крок 2.

Для мене це спрацювало непогано, використовуючи список довжини, .9*nя ніколи не отримав би повторену пісню у вісімнадцять принаймні 90% від загальної кількості пісень. Звичайно, це дуже корисно для бібліотек пісень з багатьма піснями. Але PSP міг зберігати лише кілька сотень, щоб було нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.