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?
binomial
random-generation
uniform
vidrioso
fuente
fuente
Respuestas:
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 - kk norte n - k pags
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 - kk n - 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= ∑nortek = 0( nk) 28= 256 k norte
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 - p )n - k PAGS( éxito ) = P( falla ) = p = 0.5 [0,255]PAGS( cualquier pedido ) = 0.58= 1256 [ 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 ) = ( nk) pk( 1 - p )n - k 1=1n=(p+1-p)n=∑ n k = 0 ( n∑nortek = 0( nk) pk( 1 - p )n - k= 1 , sin embargo, esto es solo un problema de coeficientes binomiales: .1 = 1norte= ( p + 1 - p )norte= ∑nortek = 0( nk) pk( 1 - p )n - k
fuente
10001000
y10000001
ser bastante diferentes números.La paradoja aparente puede resumirse en dos proposiciones, que pueden parecer contradictorias:
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: 00000000 s2: 01010101 28
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 2mi1 70 mi2
Estas proposiciones son ambas verdaderas. Porque el evento incluye muchas secuencias.mi1
fuente
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.28 28
fuente
EJEMPLO con 3 bits (a menudo un ejemplo es más ilustrativo)
Escribiré los números naturales del 0 al 7 como:
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 138 18
fuente
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.
fuente
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 ; .p ( 0 ) = p ( 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 = 256∑8i = 12i - 1Xyo Xyo yot h 28= 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 )∑8i = 120 0Xyo do( 8 , ∑8i = 1Xyo) ∑8i = 1Xyo do( 8 , 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.
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 , n ) - 1 norte 0 0 69 256 - 9 = 247
fuente
00000000
00000001
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.fuente
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.
fuente
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.
fuente
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.
Como tanto @Sycorax como @Blacksteel señalan, esta diferencia realmente se reduce a la cuestión del orden.
fuente
Cada bit que elija es independiente el uno del otro. Si consideras para el primer bit hay un
y
fuente