03 февраля, 2005

Shuffle

Купил себе mp3-плеер. Играет нормально, поддерживает OGG, имеет простенький двухцветный OLED-дисплейчик, весит 40 грамм и так далее.

Чего заметил мой пытливый ум после двух дней эксплуатации, так это вопиющее отсутствие датчика случайных чисел. Оное проявляется в том, что режим случайного проигрывания выбирает песенки всегда в одном и том же порядке. Кайф треснул.

С другой стороны, завидую (без «не») коллегам-программистам, стоявшим перед задачей генерации случайных чисел на устройстве без часов :) Это действительно интересно (а они явно не справились).

Интересно, что сделали в iPod Shuffle с его дешёвой электроникой, отсутствием радио и четырьмя кнопками.

Дальше мои-мысли-мои-скакуны.

Варианты:

1. Накопитель энтропии (типа Yarrow). Ныкать в несгораемой памяти (прямо на флэшке, например, скрытым файлом) массив битов, пополняемый из внешних случайных источников, таких как интервалы между нажатиями на кнопки (без часов замерять сложно, но можно брать от начала песни, mp3-декодер ведёт счёт секундам), кусочки имён файлов или даже аудиоданные, треск из эфира (в плеере есть FM-приёмник). Подмешивать надо сложной функцией (например, арифметическим сложением), массив должен быть достаточно большим, чтобы обеспечить задержку во времени (имена файлов на плеере случайны только в длительном промежутке времени). Много данных не нужно, вполне достаточно будет тысячи бит или около того. Новые биты, будучи арифметически сложенными со старыми, не увеличивают их размер, так что следить за переполнением не надо.

Использовать кусочки этой информации как закваску (seed) для классического генератора псевдослучайных чисел, который там и так есть.

2. Готовое хранилище случайных чисел, сгенерированное на фабрике и записанное на флэшку. Мегабайта должно хватить на пару лет :) Но это а) неинтересно, б) разные плееры из одной серии будут мешать файлы одинаково.

3. (слегка подумав за чаем) Перемешивание на компьютере при подключении. Самый дубовый, самый надёжный (и самый скучный) метод. Зуб даю на отсечение, что эппловцы так и делают :)

Написал kappa в 03.02.05 18:01
Комментарии
Добавить комментарий









Запомнить Вас?