Я генерирую 8 случайных битов (0 или 1) и объединяю их вместе, чтобы сформировать 8-битное число. Простое моделирование Python дает равномерное распределение на дискретном множестве [0, 255].
Я пытаюсь объяснить, почему это имеет смысл в моей голове. Если бы я сравнил это с подбрасыванием 8 монет, разве ожидаемое значение не было бы где-то около 4 голов / 4 хвостов? Поэтому для меня имеет смысл, что мои результаты должны отражать всплеск в середине диапазона. Другими словами, почему последовательность из 8 нулей или 8 одинаково вероятна как последовательность из 4 и 4, или 5 и 3 и т. Д.? Что мне здесь не хватает?
binomial
random-generation
uniform
стекловидный
источник
источник
Ответы:
TL; DR: резкий контраст между битами и монетами в том, что в случае монет вы игнорируете порядок результатов. HHHHTTTT рассматривается так же, как TTTTHHHH (оба имеют 4 головы и 4 хвоста). Но в битах вы заботитесь о порядке (потому что для получения 256 результатов необходимо указать «веса» для битовых позиций), поэтому 11110000 отличается от 00001111.
Более подробное объяснение: эти концепции могут быть более точно объединены, если мы будем более формальными в формулировании проблемы. Рассмотрим эксперимент как последовательность из восьми испытаний с дихотомическими исходами и вероятностью «успеха» 0,5 и «неудачи» 0,5, и испытания являются независимыми. В общем, я назову это успехов, n полных испытаний и n - k неудач, а вероятность успеха равна p .k n n−k п
В примере с монетой результат « головы, n - k хвосты» игнорирует порядок испытаний (4 головы - это 4 головы независимо от порядка появления), и это приводит к вашему наблюдению, что 4 головы более вероятны, чем 0 или 8 голов. Четыре головы более распространены, потому что есть много способов сделать четыре головы (TTHHTTHH или HHTTHHTT и т. Д.), Чем какое-то другое число (8 голов имеют только одну последовательность). Биноминальная теорема дает количество способов сделать эти различные конфигурации.К н - к
В отличие от этого, порядок важен для битов, потому что каждое место имеет связанный «вес» или «значение места». Одним из свойств биномиального коэффициента является то, что , то есть, если мы подсчитаем все различные упорядоченные последовательности, мы получим28=256. Это напрямую связывает идею о том, сколько существует различных способов сделатьkголов вnбиномиальных испытаниях с количеством различных последовательностей байтов.2N= ∑Nк = 0( нК) 28=256 k n
Кроме того, мы можем показать, что 256 результатов одинаково вероятны благодаря свойству независимости. Предыдущие испытания не влияют на следующее испытание, поэтому вероятность определенного упорядочения, как правило, равна (поскольку совместная вероятность независимых событий является произведением их вероятностей). Поскольку испытания справедливы, P ( успех ) = P ( сбой ) = p = 0,5 , это выражение сводится к P ( любой порядок ) = 0,5 8 =pk(1−p)n−k P(success)=P(fail)=p=0.5 . Поскольку все упорядочения имеют одинаковую вероятность, мы имеем равномерное распределение по этим результатам (которое с помощью двоичного кодирования может быть представлено как целые числа в[0,255]).P(any ordering)=0.58=1256 [0,255]
Наконец, мы можем взять этот полный круг обратно к броску монеты и биномиальному распределению. Мы знаем, что появление 0 голов не имеет такой же вероятности, как у 4 голов, и это потому, что существуют разные способы упорядочения вхождений 4 голов, и что количество таких упорядочений определяется биномиальной теоремой. Таким образом, должен быть как-то взвешен, в частности, он должен быть взвешен по биномиальному коэффициенту. Так что это дает нам PMF биномиального распределения, P ( k успеха ) = ( nP(4 heads) . Может быть удивительным, что это выражение является PMF, особенно потому, что не сразу очевидно, что оно суммируется с 1. Чтобы убедиться, мы должны проверить, чтоk n k = 0 ( nP(k successes)=(nk)pk(1−p)n−k , однако это всего лишь проблема биномиальных коэффициентов:1=1n=(p+1-p)n=∑ n k = 0 ( n∑nk=0(nk)pk(1−p)n−k=1 .1=1n=(p+1−p)n=∑nk=0(nk)pk(1−p)n−k
источник
10001000
и10000001
совершенно другие числа.Очевидный парадокс может быть обобщен в двух положениях, которые могут показаться противоречивыми:
Последовательность (восемь нулей) также вероятна, как последовательность s 2 : 01010101 (четыре нуля, четыре единицы). (В целом: все 2 8 последовательностей имеют одинаковую вероятность, независимо от того, сколько у них нулей / единиц).s1:00000000 s2:01010101 28
Событие « : последовательность имела четыре ноля » более вероятно ( более чем в 70 раз более вероятно), чем событие « e 2 : последовательность имела восемь нулей ».e1 70 e2
Эти предложения оба верны. Потому что событие включает в себя множество последовательностей.e1
источник
Все последовательностей имеют одинаковую вероятность 1/2 8 = 1/256. Неправильно думать, что последовательности, которые ближе к равному числу 0 и 1, более вероятны при интерпретации вопроса. Должно быть ясно, что мы достигли 1/256, потому что мы предполагаем независимость от испытания к испытанию . Вот почему мы умножаем вероятности, и результат одного испытания не влияет на следующее.28 28
источник
ПРИМЕР с 3 битами (часто пример является более иллюстративным)
Я запишу натуральные числа от 0 до 7 как:
Выбор натурального числа от 0 до 7 с равной вероятностью эквивалентен выбору одного из рядов бросков монеты справа с равной вероятностью.
источник
Ответ Sycorax правильный, но кажется, что вы не совсем понимаете, почему. Когда вы подбрасываете 8 монет или генерируете 8 случайных битов с учетом порядка, ваш результат будет одним из 256 одинаково вероятных вариантов. В вашем случае каждый из этих 256 возможных результатов однозначно отображается в целое число, поэтому вы получаете равномерное распределение в качестве результата.
Если вы не принимаете во внимание порядок, например, учитывая, сколько у вас голов или хвостов, есть только 9 возможных результатов (0 голов / 8 хвостов - 8 голов / 0 хвостов), и они больше не одинаково вероятны , Причина этого заключается в том, что из 256 возможных результатов имеется 1 комбинация сальто, которая дает вам 8 голов / 0 хвостов (HHHHHHHH) и 8 комбинаций, которые дают 7 голов / 1 хвостов (хвосты в каждой из 8 позиций в порядок), но 8C4 = 70 способов иметь 4 головы и 4 хвоста. В случае подбрасывания монеты каждая из этих 70 комбинаций отображается в 4 головы / 4 хвоста, но в проблеме двоичных чисел каждый из этих 70 исходов отображается в уникальное целое число.
источник
Ответ таков: есть две разные кодировки; 1) кодирование без потерь перестановок и 2) кодирование без потерь комбинаций.
Примечание. В настоящее время приведенный выше ответ является единственным ответом, содержащим явное вычислительное сравнение двух кодировок, и единственным ответом, в котором даже упоминается концепция кодирования. Потребовалось некоторое время, чтобы понять это правильно, поэтому этот ответ исторически был отвергнут. Если есть какие-либо нерешенные жалобы, оставьте комментарий.
Обновление: Со времени последнего обновления я рад видеть, что концепция кодирования начала завоевывать популярность в других ответах. Чтобы показать это явно для текущей задачи, я приложил количество перестановок, которые кодируются с потерями в каждой комбинации.
источник
00000000
,00000001
и так далее?Я хотел бы немного подробнее остановиться на идее зависимости порядка от независимости.
В задаче вычисления ожидаемого числа голов при подбрасывании 8 монет мы суммируем значения из 8 одинаковых распределений, каждое из которых является распределением Бернулли
[; B(1, 0.5) ;]
(другими словами, 50% шанс 0, 50% шанс 1). Распределением суммы является биномиальное распределение[; B(8, 0.5) ;]
, которое имеет знакомую форму горба с большей вероятностью, сосредоточенной вокруг 4.В задаче вычисления ожидаемого значения байта, состоящего из 8 случайных битов, каждый бит имеет свое значение, которое он вносит в байт, поэтому мы суммируем значения из 8 различных распределений. Первое
[; B(1, 0.5) ;]
, второе[; 2 B(1, 0.5) ;]
, третье[; 4 B(1, 0.5) ;]
, и так до восьмого[; 128 B(1, 0.5) ;]
. Распределение этой суммы по понятным причинам сильно отличается от первого.Если вы хотите доказать, что это последнее распределение является равномерным, я думаю, вы могли бы сделать это индуктивно - распределение младшего бита является равномерным с диапазоном 1 по предположению, поэтому вы хотели бы показать, что если распределение младших
[; n ;]
битов является однородным с диапазоном,[; 2^n - 1} ;]
то добавление первого[; n+1 ;]
бита делает распределение младших[; n + 1 ;]
битов равномерным с диапазоном[; 2^{n+1} - 1 ;]
, обеспечивая доказательство для всех положительных[; n ;]
, Но интуитивный путь, вероятно, является полной противоположностью. Если вы начнете с старшего бита и выберете значения по одному до младшего бита, каждый бит делит пространство возможных результатов ровно пополам, и каждая половина выбирается с равной вероятностью, поэтому к тому времени, когда вы доберетесь до внизу, каждое отдельное значение должно иметь одинаковую вероятность выбора.источник
Если вы выполняете двоичный поиск, сравнивая каждый бит, то вам нужно одинаковое количество шагов для каждого 8-битного числа, от 0000 0000 до 1111 1111, они оба имеют длину 8 бит. На каждом шаге бинарного поиска обе стороны имеют вероятность 50/50, поэтому, в конце концов, поскольку каждое число имеет одинаковую глубину и одинаковую вероятность, без какого-либо реального выбора каждое число должно иметь одинаковый вес. Таким образом, распределение должно быть равномерным, даже если каждый отдельный бит определяется бросками монет.
Тем не менее, цифровая сумма чисел не является одинаковой и будет равна распределению 8 подбрасывания монет.
источник
Есть только одна последовательность с восемью нулями. Есть семьдесят последовательностей с четырьмя нулями и четырьмя.
Следовательно, в то время как 0 имеет вероятность 0,39%, а 15 [00001111] также имеет вероятность 0,39%, а 23 [00010111] имеет вероятность 0,39% и т. Д., Если сложить все семьдесят из вероятностей 0,39% вы получите 27,3%, что составляет вероятность наличия четырех. Вероятность каждого отдельного результата «четыре-четыре» не должна быть выше 0,39%, чтобы это работало.
источник
Рассмотреть кости
Подумайте о том, чтобы бросить пару кубиков, типичный пример неравномерного распределения. Ради математики представьте, что кости пронумерованы от 0 до 5 вместо традиционных от 1 до 6. Причина, по которой распределение не является равномерным, заключается в том, что вы смотрите на сумму бросков костей, где несколько комбинаций могут дать такое же общее количество, как {5, 0}, {0, 5}, {4, 1} и т. д., все генерируют 5.
Однако, если вы должны были интерпретировать бросок костей как двузначное случайное число в базе 6, каждая возможная комбинация костей уникальна. {5, 0} будет 50 (база 6), что будет 5 * (61 ) + 0 * (60 ) = 30 (основание 10). {0, 5} будет 5 (база 6), что будет 5 * (60 ) = 5 (основание 10). Итак, вы можете видеть, что есть сопоставление 1 к 1 возможных бросков костей, интерпретируемых как числа в базе 6, против сопоставления много к 1 для суммы двух костей в каждом броске.
Как указывают @Sycorax и @Blacksteel, это различие действительно сводится к вопросу о порядке.
источник
Каждый выбранный вами бит не зависит от другого бита. Если вы считаете, для первого бита есть
а также
Это также относится ко второму биту, третьему биту и т. Д., Так что вы получите так для каждой возможной комбинации битов, чтобы сделать ваш байт у вас есть( 12)8 знак равно 1256 вероятность того, что это уникальное 8-битное целое число происходит.
источник