¿Por qué la generación de 8 bits aleatorios es uniforme en (0, 255)?

35

Estoy generando 8 bits aleatorios (ya sea un 0 o un 1) y los concateno para formar un número de 8 bits. Una simple simulación de Python produce una distribución uniforme en el conjunto discreto [0, 255].

Estoy tratando de justificar por qué esto tiene sentido en mi cabeza. Si comparo esto con lanzar 8 monedas, ¿no sería el valor esperado alrededor de 4 caras / 4 colas? Entonces, para mí, tiene sentido que mis resultados reflejen un pico en el medio del rango. En otras palabras, ¿por qué una secuencia de 8 ceros u 8 unos parece ser tan probable como una secuencia de 4 y 4, o 5 y 3, etc.? ¿Que me estoy perdiendo aqui?

vidrioso
fuente
17
El valor esperado de la distribución de bits en un azar aleatorio uniforme el rango [0,255] también está en algún lugar alrededor de 4 1's / 4 0's.
user253751
2
El hecho de que asigne un peso igual a cada número del 0 al 255, no significa que el resultado de la función "diferencia entre el recuento de 1s y 0s" también ocurra una vez y solo una vez. Podría dar el mismo peso a todas las personas de mi organización. No significa que sus edades sean igualmente ponderadas. Algunas edades pueden ser mucho más comunes que otras. Pero una persona no es más común que cualquier otra persona.
Brad Thomas
2
Piénselo de esta manera ... Su primer bit aleatorio determinará el valor del bit 7, un 1 vale 128 y un 0 vale 0. De 256 números tiene un 50% de posibilidades de que el número sea 0-127 si el el bit es 0 y 128-255 si el bit es 1. Digamos que es 0, luego el siguiente bit determina si el resultado será 0-63 o 64-127. Se requieren los 8 bits para formar uno de 256 resultados igualmente probables. Estás pensando en sumar totales como lo harías con los dados. Las probabilidades de obtener 4 1s y 4 0s son más altas que obtener 8 1s, pero hay más formas en que se pueden organizar para obtener un resultado diferente.
Jason Goemaat
2
Suponga que tira un dado de 256 caras con los números del 0 al 255. Esperaría una distribución uniforme. Ahora suponga que vuelve a etiquetar el dado para que un lado diga 0, 8 lados digan 1, 28 lados digan 2, y así sucesivamente; cada lado ahora está etiquetado con el número de bits en el número que solía estar en ese lado. Lanzas el dado de nuevo; ¿Por qué esperarías obtener una distribución uniforme de los números del 0 al 8?
Eric Lippert el
Si la distribución funcionara así, entonces podría ganar mucho dinero apostando en la ruleta solo después de que salgan 7 rojos seguidos. ¡7 y 1 es más 8 veces más probable que 8 y 0! (ignorando los 0, pero este sesgo supera con creces el 0 y el sesgo 00)
Cruncher

Respuestas:

61

TL; DR: El fuerte contraste entre los bits y las monedas es que, en el caso de las monedas, estás ignorando el orden de los resultados. HHHHTTTT se trata igual que TTTTHHHH (ambos tienen 4 cabezas y 4 colas). Pero en bits, le importa el orden (porque tiene que dar "ponderaciones" a las posiciones de bits para obtener 256 resultados), entonces 11110000 es diferente de 00001111.


Explicación más larga: estos conceptos pueden unificarse con mayor precisión si somos un poco más formales para enmarcar el problema. Considere que un experimento es una secuencia de ocho ensayos con resultados dicotómicos y probabilidad de un "éxito" 0.5 y un "fracaso" 0.5, y los ensayos son independientes. En general, llamaré a esto éxitos, pruebas totales y fracasos y la probabilidad de éxito es .n n - kknortenorte-kpags

  • En el ejemplo de la moneda, el resultado " cabezas, colas" ignora el orden de las pruebas (4 caras es 4 caras sin importar el orden de ocurrencia), y esto da lugar a su observación de que 4 caras son más probables que 0 o 8 cabezas. Cuatro cabezas son más comunes porque hay muchas formas de hacer cuatro cabezas (TTHHTTHH, o HHTTHHTT, etc.) que hay algún otro número (8 cabezas solo tienen una secuencia). El teorema binomial da la cantidad de formas de hacer estas diferentes configuraciones.n - kknorte-k

  • Por el contrario, el orden es importante para los bits porque cada lugar tiene un "peso" o "valor posicional" asociado. Una propiedad del coeficiente binomial es que , es decir, si contamos todas las diferentes secuencias ordenadas, obtenemos . Esto conecta directamente la idea de cuántas formas diferentes hay de hacer cabezas en ensayos binomiales con el número de secuencias de bytes diferentes. 28=256kn2norte=k=0 0norte(nortek)28=256knorte

  • Además, podemos mostrar que los 256 resultados son igualmente probables por la propiedad de la independencia. Las pruebas anteriores no tienen influencia en la siguiente prueba, por lo que la probabilidad de un orden particular es, en general, (porque la probabilidad conjunta de eventos independientes es el producto de sus probabilidades). Debido a que las pruebas son justas, , esta expresión se reduce a . Debido a que todos los ordenamientos tienen la misma probabilidad, tenemos una distribución uniforme sobre estos resultados (que mediante codificación binaria se puede representar como enteros en ). P ( éxito ) = P ( falla ) = p = 0.5 P ( cualquier orden ) = 0.5 8 = 1pagsk(1-pags)norte-kPAGS(éxito)=PAGS(fallar)=pags=0,5 [0,255]PAGS(cualquier pedido)=0,58=1256[0 0,255]

  • Finalmente, podemos llevar este círculo completo al lanzamiento de monedas y a la distribución binomial. Sabemos que la ocurrencia de 0 cabezas no tiene la misma probabilidad que 4 cabezas, y que esto se debe a que hay diferentes formas de ordenar las ocurrencias de 4 cabezas, y que el teorema binomial da la cantidad de tales ordenaciones. Entonces debe ser ponderado de alguna manera, específicamente debe ser ponderado por el coeficiente binomial. Entonces esto nos da el PMF de la distribución binomial, . Puede ser sorprendente que esta expresión sea un PMF, específicamente porque no es inmediatamente obvio que sume a 1. Para verificar, tenemos que verificar queP ( k  éxitos ) = ( nPAGS(4 cabezas) n k = 0 ( nPAGS(k éxitos)=(nortek)pagsk(1-pags)norte-k1=1n=(p+1-p)n= n k = 0 ( nk=0 0norte(nortek)pagsk(1-pags)norte-k=1, sin embargo, esto es solo un problema de coeficientes binomiales: .1=1norte=(pags+1-pags)norte=k=0 0norte(nortek)pagsk(1-pags)norte-k

Sycorax dice reinstalar a Mónica
fuente
Eso tiene sentido ... ¿pero entonces no esperaríamos que 15, 30, 60, 120 y 240 tengan un peso mayor en la distribución que 0 o 255?
vidrioso
1
Creo que lo entiendo ahora. Voy a aceptar esta respuesta porque creo que la clave aquí es el orden, al que llamó la atención. Gracias
vidrioso
Una nota más: para usar mi ejemplo de moneda, esto es realmente lanzar 8 monedas al mismo tiempo en lugar de 8 intentos de lanzar una moneda. Allí mintió mi confusión.
vidrioso
2
El concepto de "valor posicional" de "aritmética de grado elemental" es especialmente aplicable aquí; para usar una analogía decimal, se tiene en cuenta 10001000y 10000001ser bastante diferentes números.
JM no es un estadístico
17

¿Por qué una secuencia de 8 ceros u 8 unos parece ser tan probable como una secuencia de 4 y 4, o 5 y 3, etc.

La paradoja aparente puede resumirse en dos proposiciones, que pueden parecer contradictorias:

  1. La secuencia (ocho ceros) es igualmente probable que la secuencia (cuatro ceros, cuatro unos). (En general: todas las secuencias tienen la misma probabilidad, independientemente de cuántos ceros / unos tengan).s 2 : 01010101 2 8s1:00000000s2:0101010128

  2. El evento " : la secuencia tenía cuatro ceros " es más probable (de hecho, veces más probable) que el evento " : la secuencia tenía ocho ceros ". 70 e 2mi170mi2

Estas proposiciones son ambas verdaderas. Porque el evento incluye muchas secuencias.mi1

leonbloy
fuente
8

Todas las secuencias tienen la misma probabilidad = 1/256. Es un error pensar que las secuencias que tienen un número igual de 0s y 1s es más probable a medida que se interpreta la pregunta. Debe quedar claro que llegamos a 1/256 porque asumimos la independencia de un juicio a otro . Es por eso que multiplicamos las probabilidades y el resultado de un ensayo no tiene influencia en el siguiente.2828

Michael R. Chernick
fuente
2
Esta sería una respuesta aceptable, si es breve, si la pregunta no incluye la palabra "por qué". Tal como están las cosas, simplemente reitera uno de los detalles de la pregunta, sin dar ninguna explicación.
Tin Man
1
En realidad ... Esta respuesta es objetivamente incorrecta, vea la respuesta de leonbloy para saber por qué.
Tin Man
3
@Walt no es incorrecto. Sutileza del lenguaje. Cualquier secuencia dada no es más probable porque tiene menos desequilibrio entre 0s y 1s. Simplemente hay más secuencias de este tipo .
hobbs
44
¿Alguien está de acuerdo conmigo? Si un 0 tiene una probabilidad de 1/2 y un 1 tiene una probabilidad de 1/2 y un término en la secuencia es independiente del siguiente, la probabilidad de una secuencia dada de longitud 8 tiene una probabilidad de 1/2 . y también cualquier otra secuencia de 8.1/ /28=1/ /256
Michael R. Chernick
44
@Michael Estoy totalmente de acuerdo y me complace ver, por fin, un llamamiento explícito al meollo del asunto: la independencia. Me encantaría votar tu respuesta si incluyeras ese comentario.
whuber
7

EJEMPLO con 3 bits (a menudo un ejemplo es más ilustrativo)

Escribiré los números naturales del 0 al 7 como:

  • Un número en la base 10
  • Un número en la base 2 (es decir, una secuencia de bits)
  • Una serie de lanzamientos de monedas implicados por la representación de base 2 (1 denota un lanzamiento de caras y 0 denota un lanzamiento de colas).

Base 10Base 2 (con 3 bits)Serie de monedas invertidasCabezasCruz0 0000TTT0 031001TTH122010THT123011THH214 4100HTT125 5101HTH216 6110HHT217 7111HHH30 0

Elegir un número natural de 0 a 7 con igual probabilidad es equivalente a elegir una de las series de lanzamiento de monedas a la derecha con igual probabilidad.

Por lo tanto, si elige un número de la distribución uniforme sobre los enteros 0-7, tiene una probabilidad de de elegir 3 caras, posibilidad de elegir 2 caras, posibilidad de elegir 1 cabeza, y posibilidad de elegir 0 cabezas. 318 338 13818

Matthew Gunn
fuente
3

La respuesta de Sycorax es correcta, pero parece que no tienes del todo claro por qué. Cuando lanza 8 monedas o genera 8 bits aleatorios teniendo en cuenta el orden, su resultado será una de las 256 posibilidades igualmente probables. En su caso, cada uno de estos 256 resultados posibles se correlaciona únicamente con un número entero, por lo que obtiene una distribución uniforme como resultado.

Si no tiene en cuenta el orden, como considerar cuántas caras o colas obtuvo, solo hay 9 resultados posibles (0 Caras / 8 Colas - 8 Caras / 0 Colas), y ya no son igualmente probables . La razón de esto es porque de los 256 resultados posibles, hay 1 combinación de volteretas que le da 8 Heads / 0 Tails (HHHHHHHH) y 8 combinaciones que dan 7 Heads / 1 Tails (a Tails en cada una de las 8 posiciones en el orden), pero 8C4 = 70 formas de tener 4 cabezas y 4 colas. En el caso de lanzar monedas, cada una de esas 70 combinaciones se asigna a 4 Caras / 4 Colas, pero en el problema de números binarios, cada uno de esos 70 resultados se asigna a un número entero único.

Acero negro
fuente
2

El problema, reexpresado, es: ¿Por qué el número de combinaciones de 8 dígitos binarios aleatorios se toma como 0 a 8 dígitos seleccionados (por ejemplo, los 1) en un momento diferente del número de permutaciones de 8 dígitos binarios aleatorios? En el contexto aquí, la elección aleatoria de 0 y 1 significa que cada dígito es independiente de cualquier otro, de modo que los dígitos no están correlacionados y ; .pags(0 0)=pags(1)=12

La respuesta es: hay dos codificaciones diferentes; 1) codificación sin pérdida de permutaciones y 2) codificación con pérdida de combinaciones.

Ad 1) Para codificar sin pérdidas los números de modo que cada secuencia sea única, podemos ver ese número como un entero binario , donde son la izquierda a la derecha dígitos en la secuencia binaria de 0 y 1 aleatorios. Lo que hace es hacer que cada permutación sea única, ya que cada dígito aleatorio se codifica posicionalmente. Y el número total de permutaciones es entoncesX i i t h 2 8 = 256yo=182yo-1XyoXyoyoth28=256. Entonces, casualmente, uno puede traducir esos dígitos binarios en los números de base 10 0 a 255 sin pérdida de unicidad, o de hecho, puede reescribir ese número usando cualquier otra codificación sin pérdida (por ejemplo, datos comprimidos sin pérdida, Hex, Octal). La pregunta en sí, sin embargo, es binaria. Cada permutación es igualmente probable porque solo hay una forma en que se puede crear cada secuencia de codificación única, y hemos asumido que la aparición de un 1 o un 0 es igualmente probable en cualquier lugar dentro de esa cadena, de modo que cada permutación es igualmente probable.

Anuncio 2) Cuando la codificación sin pérdida se abandona considerando solo las combinaciones, entonces tenemos una codificación con pérdida en la que se combinan los resultados y se pierde la información. Entonces estamos viendo la serie de números, wlog como el número de 1; , que a su vez se reduce a , el número de combinaciones de 8 objetos tomados a la vez, y para ese problema diferente, la probabilidad de exactamente 4 1's es 70 ( ) veces mayor que obtener 8 1's, porque hay 70, igualmente probable permutaciones que pueden producir 4 1's. C ( 8 , 8 i = 1 X i ) 8 i = 1 X i C ( 8 , 4 )yo=1820 0Xyodo(8,yo=18Xyo)yo=18Xyodo(8,4 4)

Nota: En este momento, la respuesta anterior es la única que contiene una comparación computacional explícita de las dos codificaciones, y la única respuesta que incluso menciona el concepto de codificación. Me tomó un tiempo hacerlo bien, por lo que esta respuesta ha sido rechazada históricamente. Si hay alguna queja pendiente, deje un comentario.

Actualización: desde la última actualización, me complace ver que el concepto de codificación ha comenzado a captar en las otras respuestas. Para mostrar esto explícitamente para el problema actual, he adjuntado el número de permutaciones codificadas con pérdida en cada combinación.ingrese la descripción de la imagen aquí

Tenga en cuenta que el número de bytes de información perdidos durante cada codificación combinatoria es equivalente al número de permutaciones para esa combinación menos uno [ , donde es el número de 1], es decir, para este problema, de a por combinación, o general.n 0 69 256 - 9 = 247do(8,norte)-1norte0 069256-9 9=247

Carl
fuente
2
0 000000000100000001
16
Francamente, todo esto es correcto en la medida de lo posible, pero no aborda la pregunta . Has hecho un buen trabajo al mostrar cómo ocho bits ordenados pueden representar números en el rango, pero no has explicado por qué al seleccionar esos bits al azar se obtiene una distribución uniforme (algo que es, sin duda, tan simple que explicarlo claramente requiere algo de tiempo). sutileza).
dmckee
99
¿No sería más simple decir que 8 bits aleatorios (independientemente) se distribuyen uniformemente en [00000000, 11111111] por la misma razón que 3 dígitos aleatorios se distribuyen uniformemente en [000, 999]? La discusión lateral sobre cómo / por qué las computadoras usan las bases binarias y fraccionarias es totalmente innecesaria y no está relacionada. Quiero decir, el hecho de que el binario use solo los símbolos 0 y 1 es solo una propiedad inherente de la base 2 ... no es necesario explicar eso. Si quisieras mantener ese tipo de explicación allí, probablemente sería más útil explicar cómo funcionan las bases en general, pero aún sería irrelevante.
Blackhawk
3
Me alegra ver cuánto ha mejorado esta respuesta. Sin embargo, tengo dificultades para ver qué tienen que ver las representaciones de base 10 con esta pregunta (¿no funcionaría tan bien la base 3 o la base 17?) Y no puedo ver lo que podría ser especial de 8 bits que tampoco generalizar a cualquier número finito de bits. Eso sugiere que la mayoría de las consideraciones en esta respuesta son tangenciales o irrelevantes.
whuber
3
Y deseo agradecerle por esa caracterización feliz de la confusión expresada en la pregunta: codificación "con pérdida" y "sin pérdida". Es memorable, ligeramente diferente a otras perspectivas, perspicaz y potencialmente podría aclarar esa confusión rápidamente.
whuber
1

Me gustaría ampliar un poco la idea de la dependencia del orden frente a la independencia.

En el problema de calcular el número esperado de caras de lanzar 8 monedas, estamos sumando los valores de 8 distribuciones idénticas, cada una de las cuales es la distribución de Bernoulli [; B(1, 0.5) ;](en otras palabras, un 50% de probabilidad de 0, un 50% de probabilidad de 1) La distribución de la suma es la distribución binomial [; B(8, 0.5) ;], que tiene la forma familiar de la joroba con la mayor parte de la probabilidad centrada alrededor de 4.

En el problema de calcular el valor esperado de un byte formado por 8 bits aleatorios, cada bit tiene un valor diferente que contribuye al byte, por lo que estamos sumando los valores de 8 distribuciones diferentes . El primero es [; B(1, 0.5) ;], el segundo es [; 2 B(1, 0.5) ;], el tercero es [; 4 B(1, 0.5) ;], así que hasta el octavo que es [; 128 B(1, 0.5) ;]. La distribución de esta suma es comprensiblemente bastante diferente de la primera.

Si quisieras probar que esta última distribución es uniforme, creo que podrías hacerlo inductivamente: la distribución del bit más bajo es uniforme con un rango de 1 por supuesto, por lo que deberías demostrar que si la distribución de los [; n ;]bits más bajos es uniforme con un rango de [; 2^n - 1} ;]entonces, la adición del [; n+1 ;]bit st hace que la distribución de los [; n + 1 ;]bits más bajos sea uniforme con un rango de [; 2^{n+1} - 1 ;], logrando una prueba para todos los positivos[; n ;]. Pero la forma intuitiva es probablemente todo lo contrario. Si comienza en el bit alto y elige valores de uno en uno hasta el bit bajo, cada bit divide el espacio de posibles resultados exactamente a la mitad, y cada mitad se elige con la misma probabilidad, de modo que cuando llegue al abajo, cada valor individual debe haber tenido la misma probabilidad de ser elegido.

hobbs
fuente
No es un uniforme continuo. El bit es 0 o 1 y nada en el medio.
Michael R. Chernick
@MichaelChernick, por supuesto, solo estamos tratando con distribuciones discretas aquí.
hobbs
El OP dijo que los bits son solo 1 o 0 y nada en el medio.
Michael R. Chernick
1
@MichaelChernick correcto.
hobbs
1

Si realiza una búsqueda binaria que compara cada bit, entonces necesita el mismo número de pasos para cada número de 8 bits, desde 0000 0000 hasta 1111 1111, ambos tienen la longitud de 8 bits. En cada paso de la búsqueda binaria, ambos lados tienen una probabilidad de 50/50 de ocurrir, así que al final, porque cada número tiene la misma profundidad y las mismas probabilidades, sin ninguna opción real, cada número debe tener el mismo peso. Así, la distribución debe ser uniforme, incluso cuando cada bit individual se determina por moneda voltea.

Sin embargo, el digitsum de los números no es uniforme y sería igual en distribución a lanzar 8 monedas.

Con suerte
fuente
1

Solo hay una secuencia con ocho ceros. Hay setenta secuencias con cuatro ceros y cuatro unos.

Por lo tanto, mientras que 0 tiene una probabilidad de 0.39%, y 15 [00001111] también tiene una probabilidad de 0.39%, y 23 [00010111] tiene una probabilidad de 0.39%, etc., si suma las setenta de las probabilidades de 0.39% obtienes 27.3%, que es la probabilidad de tener cuatro unidades. La probabilidad de cada resultado individual de cuatro y cuatro no tiene que ser mayor que 0.39% para que esto funcione.

Aleatorio832
fuente
Esto no cambia el hecho de que las 256 secuencias son igualmente probables.
Michael R. Chernick
@MichaelChernick No dije que sí, dije explícitamente que todos tienen una probabilidad del 0,39%, estoy abordando los supuestos de OP.
Random832
Tienes razón. Es otra forma de decir lo que dije en mi respuesta. Algunas de las otras respuestas son incorrectas.
Michael R. Chernick
1

Considerar dados

Piense en lanzar un par de dados, un ejemplo común de distribución no uniforme. Por el bien de las matemáticas, imagine que los dados están numerados del 0 al 5 en lugar del tradicional 1 al 6. La razón por la que la distribución no es uniforme es que está viendo la suma de los dados, donde múltiples combinaciones pueden producir mismo total como {5, 0}, {0, 5}, {4, 1}, etc. todos generando 5.

6 616 60 06 60 0

Como tanto @Sycorax como @Blacksteel señalan, esta diferencia realmente se reduce a la cuestión del orden.

Blackhawk
fuente
0

Cada bit que elija es independiente el uno del otro. Si consideras para el primer bit hay un

  • 50% de probabilidad de que sea 1

y

  • 50% de probabilidad de que sea 0.

(12)81256

Ahemone
fuente
Todas estas afirmaciones son ciertas, pero esto no aborda por qué los lanzamientos de monedas, que también son justos e independientes, tienen solo 9 resultados distintos cuando un resultado se define como el número de caras y colas.
Sycorax dice Restablecer Mónica
Esto es sólo el resultado de la colocación de los resultados en un sistema ordenado después de la elección de ellos. La misma distribución se lograría incluso si los bits aleatorios se colocaron en posiciones aleatorias en el byte. Usted también tendrá la misma distribución de lanzamientos de moneda por la forma de encuadrar la cuestión de encontrar la oportunidad de conseguir una combinación particular de cara y cruz, como HHTHTTTH. Tendrá la oportunidad de conseguir ese 1/256 secuencia exacta de los lanzamientos de la moneda para los 8 lanzamientos de la moneda que se realiza cada vez.
Ahemone
Todo esto es una buena información a incluir en la respuesta en sí. Mi comentario no se opone a lo que ha dicho tanto como la omisión de una dirección directa de la fuente de OP de confusión: la relación entre los bits y los lanzamientos de la moneda.
Sycorax dice Restablecer Mónica
Debo decir también con el fin de llegar al valor esperado de la OP de 4 que están tratando de encontrar la probabilidad de n muchos de 1 o 0 n muchos de en un byte dado. Esta formulación de la pregunta daría la distribución binomial que estaban esperando en su mente en lugar de la distribución uniforme de encontrar la probabilidad de obtener un cierto valor de esos bits aleatorios.
Ahemone