Чому генерується 8 випадкових біт рівномірно на (0, 255)?


35

Я генерую 8 випадкових бітів (або 0, або 1) і об'єдную їх разом, щоб утворити 8-бітове число. Просте моделювання Python дає рівномірний розподіл на дискретному наборі [0, 255].

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


17
Очікуване значення розподілу бітів в рівномірному випадковому інтервалі [0,255] також десь близько 4 1-х / 4 0-х.
користувач253751

2
Тільки тому, що ви надаєте рівну вагу кожному номеру від 0 до 255, це не означає, що результат функції "різниця між кількістю 1s і 0s" також відбудеться один раз і лише один раз. Я міг би надати рівну вагу кожній людині в моїй організації. Це не означає, що їх вік буде однаково зваженим. Деякі віки можуть бути набагато більш поширеними, ніж інші. Але одна людина зустрічається не частіше, ніж будь-яка інша людина.
Бред Томас

2
Подумайте про це так ... Ваш перший випадковий біт визначить значення біта 7, 1 - це значення 128, а 0 - 0. З 256 чисел у вас є 50% шансів на те, що число буде 0-127, якщо біт дорівнює 0 і 128-255, якщо біт 1. Скажімо, це 0, то наступний біт визначає, чи буде результат 0-63 або 64-127. Всі 8 біт необхідні для формування одного з 256 однаково вірогідних результатів. Ви думаєте додати підсумки, як ви б з кубиками. Шанси на отримання 4 1 та 4 0 є вищими, ніж отримання 8 1, але є більше способів їх упорядкування, щоб дати вам інший результат.
Джейсон Гімаат

2
Припустимо, ви скатаєте вручну 256-сторонні штампи, позначені цифрами від 0 до 255. Ви очікуєте рівномірного розподілу. Тепер припустимо, що ви відновите штампи так, що одна сторона каже 0, 8 сторони кажуть 1, 28 сторони кажуть 2, і так далі; тепер на кожній стороні позначено число біт у тому числі, яке було на цій стороні. Ви знову закочуєте штамп; чому б ви розраховували отримати рівномірний розподіл чисел від 0 до 8?
Ерік Ліпперт

Якби дистрибуція працювала так, я міг би заробити багато грошей, роблячи ставку на рулетку лише після того, як підніметься 7 червоних. 7 і 1 - це в 8 разів частіше, ніж 8 і 0! (ігноруючи 0, але це перекос набагато переважає перекос 0 і 00)
Cruncher

Відповіді:


61

TL; DR: Різкий контраст між бітами та монетами полягає в тому, що у випадку з монетами ви ігноруєте порядок результатів. HHHHTTTT трактується так само, як і TTTTHHHH (обидві мають 4 голови та 4 хвости). Але в бітах ви дбаєте про порядок (адже вам потрібно надати "ваги" бітовим позиціям, щоб отримати 256 результатів), тому 11110000 відрізняється від 00001111.


Більш тривале пояснення: Ці поняття можуть бути точніше уніфіковані, якщо ми трохи формальніші в постановці проблеми. Розглянемо експеримент як послідовність восьми випробувань з дихотомічними результатами та ймовірністю «успіху» 0,5 та «невдачі» 0,5, а випробування незалежні. Взагалі я назву це успіхами, n загальними випробуваннями і n - k невдачами, а ймовірність успіху - p .knnkp

  • У прикладі монети результат " k голови, nk хвости" ігнорує впорядкування випробувань (4 голови - 4 голови, незалежно від порядку їх виникнення), і це породжує ваше зауваження, що 4 голови більше, ніж 0 або 8 голів. Чотири голови більш поширені, оскільки існує багато способів скласти чотири голови (TTHHTTHH, HHTTHHTT тощо), ніж є якесь інше число (8 голів мають лише одну послідовність). Біноміальна теорема дає кількість способів скласти ці різні конфігурації.

  • На противагу цьому, порядок важливий для бітів, оскільки кожне місце має пов’язану "вагу" або "значення місця". Одна властивість двочленного коефіцієнта полягає в тому, що2n=k=0n(nk) , тобто якщо підрахувати всі різні упорядковані послідовності, отримаємо . Це безпосередньо пов'язує уявлення про те, скільки існує різних способів складання голів у біноміальних випробуваннях до кількості різних послідовностей байтів.28=256kn

  • Крім того, ми можемо показати, що 256 результатів однаково ймовірні за властивістю незалежності. Попередні випробування не впливають на наступний випробування, тому ймовірність конкретного впорядкування, як правило, (оскільки спільна ймовірність незалежних подій є результатом їх вірогідності). Оскільки випробування справедливі, , це вираження зводиться до . Оскільки всі впорядкування мають однакову ймовірність, ми маємо рівномірний розподіл за цими результатами (що шляхом двійкового кодування може бути представлено у вигляді цілих чисел у ).pk(1p)nkP(success)=P(fail)=p=0.5P(any ordering)=0.58=1256[0,255]

  • Нарешті, ми можемо повернути це повне коло назад до кидання монети та розподілу біномів. Ми знаємо, що поява 0 голів не має такої ж ймовірності, як 4 голови, і це тому, що існують різні способи впорядкування зустрічей 4 голів, а кількість таких упорядкувань задається біноміальною теоремою. Отже, повинен бути зважений якось, конкретно, він повинен бути зважений двочленним коефіцієнтом. Отже, це дає нам PMF біноміального розподілу, . Це може бути дивно, що це вираз є PMF, конкретно тому, що не відразу очевидно, що він дорівнює 1. Щоб перевірити, ми повинні перевірити, щоP(4 heads)P(k successes)=(nk)pk(1p)nkk=0n(nk)pk(1p)nk=1однак це лише проблема біноміальних коефіцієнтів: .1=1n=(p+1p)n=k=0n(nk)pk(1p)nk


Це має сенс ... але чи не будемо ми очікувати, що 15, 30, 60, 120 і 240 матимуть більшу вагу в розподілі, ніж 0 або 255?
склоподібний

1
Я думаю, я зараз це розумію. Я прийму цю відповідь, тому що я думаю, що тут ключовим є порядок, на який ви звернули увагу. Спасибі
склоподібний

Ще одна примітка - щоб використовувати мій приклад монети, це справді гортання 8 монет одночасно, на відміну від 8 випробувань гортання монети. У цьому збрехав мій розгубленість.
склоподібний

2
Тут особливо застосоване поняття "значення місця" від "арифметики початкових класів"; використовувати десяткову аналогію, слід враховувати 10001000і 10000001бути зовсім іншими числами.
JM не є статистиком

17

чому послідовність з 8 нулів або 8 з них здається настільки ж імовірною, як послідовність 4 і 4, або 5 і 3 і т.д.

Явний парадокс можна узагальнити двома пропозиціями, які можуть здатися суперечливими:

  1. Послідовність (вісім нулів) однаково вірогідна, як і послідовність s 2 : 01010101 (чотири нулі, чотири). (Загалом: усі 2 8 послідовностей мають однакову ймовірність, незалежно від того, скільки нулів / одиниць у них є.)s1:00000000s2:0101010128

  2. Подія " : послідовність мала чотири нулі " є більш вірогідною (дійсно, в 70 разів більш імовірною), ніж подія " e 2 : послідовність мала вісім нулів ".e170e2

Ці пропозиції є правдивими. Тому що подія включає багато послідовностей.e1


8

Усі послідовності мають однакову ймовірність 1/2 8 = 1/256. Це неправильно думати , що послідовності , які мають ближче до рівного числа 0 і 1 ймовірніше , так як питання інтерпретуються .. Повинно бути ясно , що ми приходимо до 1/256 , тому що ми вважаємо , незалежність від суду до суду . Ось чому ми множимо ймовірності, і результат одного випробування не впливає на наступне.2828


2
Це було б добре, якщо коротко, відповідь ... якби питання не включало слово "чому". У цьому випадку ви просто повторите одну із задач у запитанні, не надаючи пояснень.
Олов'яний чоловік

1
Насправді ... Ця відповідь фактично неправильна, дивіться відповідь леонблоя.
Олов'яний чоловік

3
@Walt це невірно. Тонкість мови. Будь-яка задана послідовність не є більшою ймовірністю, оскільки вона має менший дисбаланс між 0 і 1. Просто таких послідовностей просто більше .
варення

4
1/28=1/256

4
@Michael Я повністю згоден і радий бачити - нарешті! - явне заклик до самого суті справи: незалежність. Я був би радий підтримати вашу відповідь, якщо ви включите цей коментар до неї.
whuber

7

ПРИКЛАД з 3 бітами (часто приклад є більш наочним)

Я запису натуральні числа від 0 до 7 як:

  • Число в базі 10
  • Число в базі 2 (тобто послідовність бітів)
  • Серія монетних переворотів, що має на увазі представлення основи 2 (1 позначає фліп голови, а 0 позначає фліп хвостів).

Base 10Base 2 (with 3 bits)Implied Coin Flip SeriesHeadsTails0000TTT031001TTH122010THT123011THH214100HTT125101HTH216110HHT217111HHH30

Вибір натурального числа від 0 до 7 з однаковою ймовірністю еквівалентно вибору однієї з серій монет перевернути праворуч з однаковою ймовірністю.

18383818


3

Відповідь 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 результатів відображає на єдине ціле число.


2

p(0)=p(1)=12

Відповідь: Є два різних кодування; 1) кодування без втрат перестановок і 2) кодування втрат комбінацій.

i=182i1XiXiith28=256. Тоді випадково можна перевести ці двійкові цифри в базові 10 чисел від 0 до 255 без втрати унікальності, або з цього приводу можна переписати це число, використовуючи будь-яке інше кодування без втрат (наприклад, стислі дані без втрат, Hex, Octal). Але саме питання є бінарним. Кожна перестановка є однаковою мірою ймовірною, тому що існує лише один спосіб створення кожної унікальної послідовності кодування, і ми припустили, що поява 1 або 0 є однаково вірогідним у будь-якій точці цього рядка, так що кожна перестановка однаково вірогідна.

i=1820XiC(8,i=18Xi)i=18XiC(8,4)

Примітка. На даний момент вищевказана відповідь є єдиною, що містить явне обчислювальне порівняння двох кодувань, і єдина відповідь, яка навіть згадує поняття кодування. Щоб виправити це, знадобився певний час, через що ця відповідь була спростована історично. Якщо є якісь невирішені скарги, залиште коментар.

Оновлення: з моменту останнього оновлення я із задоволенням бачу, що поняття кодування почало втягуватися в інші відповіді. Щоб це явно показати для поточної проблеми, я додав кількість перестановок, котрі втрачаються в кожній комбінації.введіть тут опис зображення

C(8,n)1n0692569=247


2
000000000100000001

16
Відверто кажучи, це все правильно, але це не стосується питання . Ви зробили чудову роботу, показавши, як вісім упорядкованих бітів можуть представляти числа в діапазоні, але ви не пояснили, чому вибір цих бітів випадковим чином дає рівномірний розподіл (те, що, правда, настільки просто, що його пояснення чітко вимагає деяких тонкість).
dmckee

9
Чи не було б простіше сказати, що 8 (незалежно) випадкових біт рівномірно розподілені на [00000000, 11111111] з тієї ж причини, що 3 випадкові цифри рівномірно розподілені на [000, 999]? Побічна рента про те, як / чому комп'ютери використовують бінарні та дробові основи, абсолютно непотрібна і не пов'язана між собою. Я маю на увазі той факт, що бінарний використовує лише символи 0 і 1 - це лише притаманна властивість бази 2 ... пояснювати це не потрібно. Якби ви хотіли зберегти таке пояснення там, напевно, було б корисніше пояснити, як бази працюють в цілому, але все одно це буде поруч.
Blackhawk

3
Я радий бачити, наскільки покращилась ця відповідь. Однак мені важко зрозуміти, які стосунки представлення base-10 мають відношення до цього питання (чи не працює також base-3 або base-17?), І я не можу побачити, що може бути особливим у 8 бітах, що не також узагальнити до будь-якої кінцевої кількості бітів. Це говорить про те, що більшість міркувань у цій відповіді є дотичними або не мають значення.
whuber

3
І я хочу подякувати вам за те, що вибагливо характеризуєте плутанину, виражену у запитанні: "втрата" та "без втрат" кодування. Це запам'ятовується, трохи інше, ніж інші точки зору, проникливе і потенційно могло швидко усунути цю плутанину.
whuber

1

Я хотів би трохи розширити ідею залежності порядку від незалежності.

У задачі обчислення очікуваної кількості голів від перегортання 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 ;]st біта робить розподіл найнижчих [; n + 1 ;]бітів рівномірним з діапазоном [; 2^{n+1} - 1 ;], досягаючи доказів для всіх позитивних[; n ;]. Але інтуїтивно зрозумілий спосіб, мабуть, прямо протилежний. Якщо ви починаєте з найвищого біта і вибираєте значення по одному вниз до низького біта, кожен біт розділяє простір можливих результатів рівно навпіл, і кожна половина вибирається з однаковою ймовірністю, тому до моменту, коли ви перейдете до знизу, кожне окреме значення повинно було мати однакову ймовірність.


Це не суцільна уніформа. Біт або 0, або 1, і між ними немає нічого.
Майкл Р. Черник

@MichaelChernick Звичайно, тут ми маємо справу лише з дискретними розподілами.
варення

ОП заявила, що біти лише 1 або 0 і нічого між ними.
Майкл Р. Черник

1
@MichaelChernick правильний.
варення

1

Якщо ви виконуєте двійковий пошук, порівнюючи кожен біт, то вам потрібно однакова кількість кроків для кожного 8-бітного числа, від 0000 0000 до 1111 1111, вони мають довжину 8 біт. На кожному кроці двійкового пошуку обидві сторони мають шанс 50/50 виникнення, тож врешті-решт, оскільки кожне число має однакову глибину та однакові ймовірності, без реального вибору, кожне число повинно мати однакову вагу. Таким чином, розподіл повинен бути рівномірним, навіть коли кожен окремий біт визначається обертами монети.

Однак цифра цифр не є рівномірною і по розподілу дорівнюватиме викиданню 8 монет.


1

Існує лише одна послідовність з вісьмома нулями. Існує сімдесят послідовностей з чотирма нулями та чотирма.

Тому, хоча 0 має ймовірність 0,39%, а 15 також має ймовірність 0,39%, а 23 [00010111] має ймовірність 0,39% тощо, якщо скласти всі сімдесят імовірностей 0,39% ви отримуєте 27,3%, що є ймовірністю мати чотири. Ймовірність кожного результату кожного чотирьох-чотирьох не повинна бути вище 0,39%, щоб це працювало.


Це не змінює факту, що всі 256 послідовностей однаково вірогідні.
Майкл Р. Черник

@MichaelChernick Я цього не сказав, я прямо сказав, що всі вони мають імовірність 0,39%, я звертаюся до припущень ОП.
Випадково832

Ти правий. Це ще один спосіб сказати те, що я сказав у своїй відповіді. Деякі з інших відповідей неправильні.
Майкл Р. Черник

1

Розгляньте кубики

Подумайте про те, щоб закатати пару кісток, поширений приклад нерівномірного розподілу. Заради математики, уявіть, що кубики пронумеровані від 0 до 5 замість традиційних 1 до 6. Причина розподілу не рівномірна полягає в тому, що ви дивитеся на суму рулонів з кістки, де кілька комбінацій можуть дати вихід така ж сумарна, як {5, 0}, {0, 5}, {4, 1} і т. д. всі породжують 5.

616060

Як зазначають і @Sycorax, і @Blacksteel, ця різниця дійсно зводиться до питання порядку.


0

Кожен вибраний біт не залежить один від одного. Якщо розглянути перший біт, є

  • 50% ймовірність, що це буде 1

і

  • 50% ймовірність, що це буде 0.

(12)81256


Усі ці твердження вірні, але це не стосується того, чому кидання монет, які також є справедливими та незалежними, має лише 9 різних результатів, коли результат визначається як кількість голів та хвостів.
Sycorax каже, що повернеться до Моніки

Це лише результат розміщення результатів в упорядкованій системі після їх вибору. Такого ж розподілу було б досягнуто, навіть якщо випадкові біти були розміщені у випадкових положеннях у байті. Ви також отримаєте такий же розподіл на монетах, як ви поставите питання, щоб знайти шанс отримати певну комбінацію голів та хвостів, наприклад HHTHTTTH. У вас буде 1/256 шанс отримати таку точну послідовність кидок монети за 8 монет, що виконуються щоразу.
Агемон

Це вся корисна інформація, яку слід включити до самої відповіді. Мій коментар не викликає сумніву з тим, що ви сказали так сильно, як упущення прямої адреси джерела плутанини ОП: взаємозв'язок між бітами та монетами перевертається.
Sycorax каже, що повернеться до Моніки

Я також повинен сказати, щоб дістати до очікуваного значення OP 4, вони намагаються знайти ймовірність n багато 1 або n багато 0 у заданому байті. Це постановка питання дасть биноміальне розподіл, якого вони очікували в їхній свідомості, а не рівномірний розподіл знаходження ймовірності отримання певного значення з цих випадкових біт.
Агемон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.