Перетасовка смещенных случайных чисел

Размышляя об этом вопрос и беседуя с участниками, пришла к выводу, что перетасовка конечного набора явно смещенных случайных чисел делает их случайными, потому что вы не знаете порядок, в котором они были выбраны. Верно ли это, и если да, то может ли кто-нибудь указать на некоторые ресурсы?

РЕДАКТИРОВАТЬ: я думаю, что я мог быть немного неясным. Предположим, плохой генератор случайных чисел. Возьмите n значений. Они предвзяты (ранг плохой). Есть ли способ с помощью перетасовки сделать вывод случайного числа по нескольким испытаниям статистически совпадающим с выводом заведомо хорошего случайного числа?


person Jason Punyon    schedule 23.01.2009    source источник


Ответы (7)


Неверно.

Существует простой тест: предположим, что смещение в исходном алгоритме создания набора «создает наборы, среднее арифметическое которых значительно ниже ожидаемого среднего». Очевидно, что перетасовка результатов алгоритма не изменит средние значения и, следовательно, не устранит систематическую ошибку.

Кроме того, что касается вашего разъяснения: как бы вы перетасовали набор? Используя тот же плохой вывод из плохого генератора случайных чисел, который изначально создал набор? Или использовать лучший ГСЧ? Что поднимает вопрос, почему вы не используете это напрямую.

person David Schmitt    schedule 23.01.2009

Это неправда. В другом вопросе проблема состоит в том, чтобы выбрать 30 случайных чисел в [1..9] с суммой 200. После случайного выбора в среднем около 20 из них вы достигаете точки, когда вы больше не можете выбирать девятки, потому что это чтобы общая сумма превышала 200. Из оставшихся 10 чисел большинство будет единицами и двойками. Так что, в конце концов, единицы и двойки очень сильно представлены в выбранных числах. Перетасовка этого не меняет. Но неясно, как на самом деле должно выглядеть случайное распределение, поэтому можно сказать, что это такое же хорошее решение, как и любое другое.

В общем, если ваши "случайные" числа будут смещены, скажем, к низким числам, они будут смещены таким образом, независимо от порядка.

person sth    schedule 23.01.2009

Простое перетасовка набора уже случайных чисел, конечно, ничего не изменит в распределении вероятностей. Это означало бы ложь. Хотя, возможно, я неправильно понял ваш вопрос?

person Noldorin    schedule 23.01.2009

Я бы сказал неверно, с оговоркой:

Я думаю, что есть случайность, а есть «достаточно случайная». Для большинства приложений, над которыми мне приходилось работать, «случайного» выбора было более чем достаточно, т. е. выбора «случайного» объявления для отображения на странице из списка примерно из 300 объявлений, которые заплатили за размещение на этом сайте.

Я уверен, что математик мог бы доказать, что мои базовые «случайные» критерии выбора вовсе не случайны, а на самом деле предсказуемы — ни для моих клиентов, ни для пользователей это никого не волнует.

С другой стороны, если бы я писал видеоигру для использования в Лас-Вегасе, где под рукой были большие суммы денег, я бы определил рандом по-другому (и, возможно, мне было бы трудно придумать действительно рандом).

person E.J. Brennan    schedule 23.01.2009
comment
есть разница между смещением ранга и смещением функции преобразования, которая применяется впоследствии, чтобы выиграть казино. - person ; 23.01.2009
comment
Программное обеспечение в стиле Лас-Вегаса использует очень надежные случайные алгоритмы PRNG или аппаратное обеспечение RNG. Для этого существуют законы и строгие процедуры аудита. Это правила, а не случайность игр, которые обеспечивают победу казино. - person ScottS; 23.01.2009

Неверно

Набор конечен, пусть состоит из n чисел. Что произойдет, если вы выберете n+1 числа? Давайте также рассмотрим базовую случайную функцию, реализованную во многих языках, которая дает вам случайное число в [0,1). Однако это число ограничено тремя цифрами после запятой, что дает вам набор из 1000 возможных чисел (0.000 - 0.999). Однако в большинстве случаев вам не нужно будет использовать все эти 1000 чисел, так что этого количества случайности более чем достаточно.

Однако для некоторых целей вам понадобится генератор случайных чисел лучше этого. Таким образом, все сводится к тому, сколько именно случайных чисел вам понадобится и насколько они должны быть случайными.


Дополнение после прочтения исходного вопроса: если у вас есть какое-то ограничение (например, в исходном вопросе, в котором каждый набор выбранных чисел должен в сумме давать определенное N), вы на самом деле не выбраны случайные числа как таковые, а выбраны числа в случайном порядке из заданного набора (в частности, перестановка чисел, суммирующая до N).


Дополнение к редактированию: Предположим, ваш генератор неверных чисел сгенерировал последовательность (1,1,1,2,2,2). Соответствует ли перестановка (1,2,2,1,1,2) вашему определению случайного?

person Yuval Adam    schedule 23.01.2009
comment
совершенный квантово-магический генератор может дать последовательность (1,1,1,1,1,1). возможно - person ; 23.01.2009

Полная и абсолютная неправда: перетасовка не устраняет предвзятость, она просто скрывает ее от случайного наблюдателя. Это похоже на то, как убрать подарок вашей собаки с ковра, просто затолкнув его под диван — вы на самом деле не решили проблему, вы просто сделали ее менее заметной. Любой, у кого есть нос, знает, что есть проблема, которую необходимо устранить.

Случайность должна применяться равномерно по всему диапазону, так что вот один из способов (в голову не пришло, куча предположений, бла-бла-бла. Суть в подходе, а не в коде — начните со всего ровным, затем внесите свою случайность в последовательно, пока вы не закончите. Единственное смещение теперь зависит от значений, выбранных для «target» и «numberofnumbers», что является частью вопроса.)

target = 200
numberofnumbers = 30
numbers = array();
for (i=0; i<numberofnumbers; i++)
  numbers[i] = 9
while (sum(numbers)>target)
  numbers[random(numberofnumbers)]--
person Community    schedule 23.01.2009

Неверно. Рассмотрим плохой генератор случайных чисел, выдающий только нули (я сказал, что это ПЛОХО :-) Никакое перетасовывание нулей не изменит ничего свойство этой последовательности.

person Jens    schedule 22.07.2011