Tại sao tạo 8 bit ngẫu nhiên đồng nhất trên (0, 255)?


35

Tôi đang tạo ra 8 bit ngẫu nhiên (0 hoặc 1) và ghép chúng lại với nhau để tạo thành một số 8 bit. Một mô phỏng Python đơn giản mang lại phân phối đồng đều trên tập rời rạc [0, 255].

Tôi đang cố gắng biện minh tại sao điều này có ý nghĩa trong đầu tôi. Nếu tôi so sánh điều này với việc lật 8 đồng xu, thì giá trị dự kiến ​​sẽ ở đâu đó quanh 4 đầu / 4 đuôi? Vì vậy, với tôi, nó có ý nghĩa rằng kết quả của tôi sẽ phản ánh một sự tăng đột biến ở giữa phạm vi. Nói cách khác, tại sao một chuỗi gồm 8 số 0 hoặc 8 số dường như có khả năng bằng nhau như một chuỗi 4 và 4, hoặc 5 và 3, v.v.? Tôi đang thiếu gì ở đây?


17
Giá trị dự kiến ​​của phân phối bit một cách ngẫu nhiên, phạm vi [0,255] cũng nằm trong khoảng 4 1 '/ 4 0'.
dùng253751

2
Chỉ vì bạn cho trọng số bằng nhau cho mỗi số từ 0 đến 255, không có nghĩa là kết quả chức năng "sự khác biệt giữa số 1 và 0" cũng sẽ xảy ra một lần và chỉ một lần. Tôi có thể cho một trọng lượng tương đương với mọi người trong tổ chức của tôi. Không có nghĩa là tuổi của họ sẽ có trọng lượng như nhau. Một số lứa tuổi có thể phổ biến hơn nhiều so với những người khác. Nhưng một người không phổ biến hơn bất kỳ người nào khác.
Brad Thomas

2
Hãy nghĩ về nó theo cách này ... Bit ngẫu nhiên đầu tiên của bạn sẽ xác định giá trị của bit 7, 1 có giá trị 128 và 0 có giá trị 0. Trong số 256 số bạn có 50% khả năng số đó là 0-127 nếu bit là 0 và 128-255 nếu bit là 1. Giả sử là 0, thì bit tiếp theo sẽ xác định xem kết quả sẽ là 0-63 hay 64-127. Tất cả 8 bit được yêu cầu để tạo thành một trong 256 kết quả có khả năng như nhau. Bạn đang nghĩ đến việc thêm tổng số như bạn sẽ làm với súc sắc. Tỷ lệ nhận được 4 1 và 4 0 cao hơn so với nhận 8 1, nhưng có nhiều cách họ có thể được sắp xếp để cung cấp cho bạn một kết quả khác.
Jason Goemaat

2
Giả sử bạn cuộn một con súc sắc 256 mặt được dán nhãn với các số từ 0 đến 255. Bạn sẽ mong đợi một phân phối thống nhất. Bây giờ, giả sử bạn dán lại cái chết để một bên nói 0, 8 bên nói 1, 28 bên nói 2, v.v. mỗi bên hiện được gắn nhãn với số bit trên số đã từng ở bên đó. Bạn lăn chết lần nữa; tại sao bạn muốn có được sự phân phối đồng đều các số từ 0 đến 8?
Eric Lippert

Nếu phân phối hoạt động như thế này, thì tôi có thể kiếm được rất nhiều tiền khi đặt cược vào roulette chỉ sau 7 lần xuất hiện liên tiếp. 7 và 1 nhiều hơn 8 lần so với 8 và 0! (bỏ qua 0, nhưng độ lệch này vượt xa 0 và 00 xiên)
Cruncher

Câu trả lời:


61

TL; DR: Sự tương phản rõ rệt giữa các bit và đồng xu là trong trường hợp của các đồng tiền, bạn đang bỏ qua thứ tự kết quả. HHHHTTTT được coi là giống như TTTTHHHH (cả hai đều có 4 đầu và 4 đuôi). Nhưng theo bit, bạn quan tâm đến thứ tự (vì bạn phải đưa ra "trọng số" cho các vị trí bit để có được 256 kết quả), vì vậy 11110000 khác với 00001111.


Giải thích dài hơn: Những khái niệm này có thể được thống nhất chính xác hơn nếu chúng ta chính thức hơn một chút trong việc đóng khung vấn đề. Hãy coi một thử nghiệm là một chuỗi gồm tám thử nghiệm với kết quả phân đôi và xác suất "thành công" 0,5 và "thất bại" 0,5, và các thử nghiệm là độc lập. Nói chung, tôi sẽ gọi đây là thành công, n tổng thử nghiệm và n - k thất bại và xác suất thành công là p .knnkp

  • Trong ví dụ về đồng xu, kết quả " đầu, n - k đuôi" bỏ qua thứ tự của các thử nghiệm (4 đầu là 4 đầu bất kể thứ tự xảy ra) và điều này dẫn đến sự quan sát của bạn rằng 4 đầu có nhiều khả năng hơn 0 hoặc 8 đầu. Bốn đầu phổ biến hơn vì có nhiều cách để tạo bốn đầu (TTHHTTHH hoặc HHTTHHTT, v.v.) so với một số số khác (8 đầu chỉ có một chuỗi). Định lý nhị thức đưa ra số cách để tạo các cấu hình khác nhau này.knk

  • Ngược lại, thứ tự là quan trọng đối với bit bởi vì mỗi nơi có một "trọng số" hoặc "giá trị địa điểm". Một tính chất của hệ số nhị thức là , đó là nếu chúng ta đếm tất cả các chuỗi được sắp xếp khác nhau, chúng ta sẽ nhận được28=256. Điều này trực tiếp kết nối ý tưởng của bao nhiêu cách khác nhau có làmkđứng đầu trongnthử nghiệm nhị thức với số chuỗi byte khác nhau.2n=k=0n(nk)28=256kn

  • Ngoài ra, chúng tôi có thể chỉ ra rằng 256 kết quả có khả năng tương đương với tài sản độc lập. Các thử nghiệm trước đây không ảnh hưởng đến thử nghiệm tiếp theo, do đó, xác suất của một đơn đặt hàng cụ thể là, nói chung, (vì xác suất chung của các sự kiện độc lập là sản phẩm của xác suất của chúng). Vì các thử nghiệm là công bằng, P ( thành công ) = P ( thất bại ) = p = 0,5 , biểu thức này giảm xuống P ( bất kỳ thứ tự nào ) = 0,5 8 =pk(1p)nkP(success)=P(fail)=p=0.5 . Bởi vì tất cả các thứ tự có cùng xác suất, chúng tôi có phân phối đồng đều trên các kết quả này (mà bằng mã hóa nhị phân có thể được biểu diễn dưới dạng số nguyên trong[0,255]).P(any ordering)=0.58=1256[0,255]

  • Cuối cùng, chúng ta có thể đưa vòng tròn đầy đủ này trở lại phân phối tung đồng xu và nhị thức. Chúng ta biết rằng sự xuất hiện của 0 đầu không có xác suất giống như 4 đầu và điều này là do có nhiều cách khác nhau để sắp xếp các lần xuất hiện của 4 đầu và số thứ tự như vậy được đưa ra bởi định lý nhị thức. Vì vậy, phải được cân bằng cách nào đó, cụ thể nó phải được tính theo hệ số nhị thức. Vì vậy, điều này mang lại cho chúng ta PMF của phân phối nhị thức, P ( k  thành công ) = ( nP(4 heads). Có thể đáng ngạc nhiên rằng biểu thức này là một PMF, cụ thể là vì nó không rõ ràng ngay lập tức mà nó tổng hợp thành 1. Để xác minh, chúng tôi phải kiểm tra xem n k = 0 ( nP(k successes)=(nk)pk(1p)nk, tuy nhiên đây chỉ là vấn đề của các hệ số nhị thức:1=1n=(p+1-p)n= n k = 0 ( nk=0n(nk)pk(1p)nk=1.1=1n=(p+1p)n=k=0n(nk)pk(1p)nk


Điều đó có ý nghĩa ... nhưng sau đó chúng ta sẽ không mong đợi 15, 30, 60, 120 và 240 có trọng số cao hơn trong phân phối so với 0 hoặc 255?
thủy tinh

1
Tôi nghĩ rằng tôi hiểu nó bây giờ. Tôi sẽ chấp nhận câu trả lời này bởi vì tôi nghĩ chìa khóa ở đây là thứ tự mà bạn gọi là sự chú ý. Cảm ơn
thủy tinh

Thêm một lưu ý - để sử dụng ví dụ về đồng xu của tôi, đây thực sự là lật 8 đồng xu cùng lúc với 8 thử nghiệm lật một đồng xu. Trong đó nói dối sự nhầm lẫn của tôi.
thủy tinh

2
Khái niệm "giá trị địa điểm" từ "số học cấp tiểu học" đặc biệt được áp dụng ở đây; để sử dụng một phép so sánh thập phân, người ta xem xét 1000100010000001là các số khá khác nhau.
JM không phải là một thống kê

17

tại sao một chuỗi gồm 8 số 0 hoặc 8 số có vẻ giống nhau như một chuỗi 4 và 4, hoặc 5 và 3, v.v.

Nghịch lý aparent có thể được tóm tắt trong hai mệnh đề, điều này có vẻ mâu thuẫn:

  1. Chuỗi (tám số không) có thể xảy ra như nhaus1:00000000 như như trình tự (bốn số không, bốn số không). (Nói chung: tất cả 2 8 chuỗi có cùng xác suất, bất kể số lượng 0 / số chúng có là bao nhiêu.)s2:0101010128

  2. Sự kiện " : chuỗi có bốn số 0 " có xác suất cao hơn (thực tế, có khả năng cao gấp 70 lần) so với sự kiện " e 2 : chuỗi có tám số không ".e170e2

Những mệnh đề này đều đúng. Bởi vì sự kiện bao gồm nhiều chuỗi.e1


8

Tất cả các chuỗi có cùng xác suất 1/2 82828 = 1/256. Thật sai lầm khi nghĩ rằng các chuỗi gần với số 0 và 1 bằng nhau có nhiều khả năng vì câu hỏi được giải thích .. Cần phải rõ ràng rằng chúng tôi đến 1/256 vì chúng tôi cho rằng độc lập từ thử nghiệm sang thử nghiệm . Đó là lý do tại sao chúng tôi nhân các xác suất và kết quả của một thử nghiệm không có ảnh hưởng đến lần tiếp theo.


2
Điều này sẽ ổn thôi, nếu ngắn, hãy trả lời ... nếu câu hỏi không bao gồm từ "tại sao". Vì nó là, bạn chỉ cần nhắc lại một trong những tặng phẩm trong câu hỏi, không có lời giải thích nào được đưa ra.
Tin Man

1
Trên thực tế ... Câu trả lời này thực sự sai, hãy xem câu trả lời của leonbloy để biết lý do tại sao.
Tin Man

3
@ Sẽ không sai. Tinh tế ngôn ngữ. Bất kỳ chuỗi đã cho nào không có nhiều khả năng vì nó có ít sự mất cân bằng giữa 0 và 1. Đơn giản là có nhiều trình tự như vậy .
hobbs

4
Có ai đồng ý với tôi không? Nếu 0 có xác suất 1/2 và 1 có xác suất 1/2 và một nhiệm kỳ trong chuỗi là độc lập tiếp theo xác suất của một chuỗi nhất định chiều dài 8 có khả năng . và bất kỳ chuỗi nào khác của 8.1/28=1/256
Michael R. Chernick

4
@Michael Tôi hoàn toàn đồng ý và rất vui khi thấy - cuối cùng! - một lời kêu gọi rõ ràng đến chính cốt lõi của vấn đề: sự độc lập. Tôi sẽ rất vui khi đưa ra câu trả lời của bạn nếu bạn đưa nhận xét đó vào đó.
whuber

7

VÍ DỤ với 3 bit (thường là một ví dụ mang tính minh họa hơn)

Tôi sẽ viết các số tự nhiên từ 0 đến 7 là:

  • Một số trong cơ sở 10
  • Một số trong cơ sở 2 (tức là một chuỗi bit)
  • Một loạt các đồng xu được ngụ ý bởi đại diện cơ sở 2 (1 biểu thị một lần lật đầu và 0 biểu thị một lần lật đuôi).

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

Chọn một số tự nhiên từ 0 đến 7 với xác suất bằng nhau tương đương với việc chọn một trong các chuỗi lật đồng xu ở bên phải với xác suất bằng nhau.

Do đó, nếu bạn chọn một số từ phân phối đồng đều trên các số nguyên 0-7, bạn có cơ hội chọn 3 đầu,318 cơ hội chọn 2 đầu,338 cơ hội chọn 1 đầu và138 cơ hội chọn 0 đầu.18


3

Câu trả lời của Sycorax là chính xác, nhưng có vẻ như bạn không hoàn toàn rõ ràng về lý do tại sao. Khi bạn lật 8 đồng xu hoặc tạo 8 bit ngẫu nhiên theo thứ tự, kết quả của bạn sẽ là một trong 256 khả năng có khả năng như nhau. Trong trường hợp của bạn, mỗi trong số 256 kết quả có thể này ánh xạ duy nhất đến một số nguyên, do đó bạn có được phân phối đồng đều như kết quả của mình.

Nếu bạn không tính đến thứ tự, chẳng hạn như xem xét số lượng đầu hoặc đuôi bạn nhận được, chỉ có 9 kết quả có thể xảy ra (0 Đầu / 8 Đuôi - 8 Đầu / 0 Đuôi) và chúng không còn có khả năng như nhau . Lý do cho điều này là do trong số 256 kết quả có thể xảy ra, có 1 tổ hợp lật cung cấp cho bạn 8 Đầu / 0 Đuôi (HHHHHHHH) và 8 kết hợp cung cấp 7 Đầu / 1 Đuôi (một Đuôi trong mỗi 8 vị trí trong thứ tự), nhưng 8C4 = 70 cách để có 4 Đầu và 4 Đuôi. Trong trường hợp lật đồng xu, mỗi trong số 70 kết hợp đó ánh xạ thành 4 Đầu / 4 Đuôi, nhưng trong bài toán số nhị phân, mỗi trong số 70 kết quả đó ánh xạ thành một số nguyên duy nhất.


2

The problem, restated, is: Why is the number of combinations of 8 random binary digits taken as 0 to 8 selected digits (e.g., the 1's) at a time different from the number of permutations of 8 random binary digits. In the context herein, random choice of 0's and 1's means that each digit is independent of any other, so that digits are uncorrelated and p(0)=p(1)=12; .

The answer is: There are two different encodings; 1) lossless encoding of permutations and 2) lossy encoding of combinations.

Ad 1) To lossless encode the numbers so that each sequence is unique we can view that number as being a binary integer i=182i1Xi, where Xi are the left to right ith digits in the binary sequence of random 0's and 1's. What that does is make each permutation unique, as each random digit is then positional encoded. And the total number of permutations is then 28=256. Then, coincidentally one can translate those binary digits into the base 10 numbers 0 to 255 without loss of uniqueness, or for that matter one can rewrite that number using any other lossless encoding (e.g. lossless compressed data, Hex, Octal). The question itself, however, is a binary one. Each permutation is then equally probable because there is then only one way each unique encoding sequence can be created, and we have assumed that the appearance of a 1 or a 0 is equally likely anywhere within that string, such that each permutation is equally probable.

Ad 2) When the lossless encoding is abandoned by only considering combinations, we then have a lossy encoding in which outcomes are combined and information is lost. We are then viewing the number series, w.l.o.g. as the number of 1's; i=1820Xi, which in turn reduces to C(8,i=18Xi), the number of combinations of 8 objects taken i=18Xi at at time, and for that different problem, the probability of exactly 4 1's is 70 (C(8,4)) times greater than obtaining 8 1's, because there are 70, equally likely permutations that can produce 4 1's.

Note: At the current time, the above answer is the only one containing an explicit computational comparison of the two encodings, and the only answer that even mentions the concept of encoding. It took a while to get it right, which is why this answer has been downvoted, historically. If there are any outstanding complaints, leave a comment.

Update: Since the last update, I am gratified to see that the concept of encoding has begun to catch on in the other answers. To show this explicitly for the current problem I have attached the number of permutations that are lossy encoded in each combination.enter image description here

Note that the number of bytes of information lost during each combinatorial encoding is equivalent to the number of permutations for that combination minus one [C(8,n)1, where n is the number of 1's], i.e., for this problem, from 0 to 69 per combination, or 2569=247 overall.


2
Using the conventional way to name numbers--by omitting all reference to preceding zeros--potentially confuses this explanation. Don't you think the situation would become much clearer by writing 0 as 00000000, 1 (which you inadvertently omitted) as 00000001, and so on?
whuber

16
Frankly this is all correct as far as it goes but it doesn't address the question. You've done a fine job of showing how eight ordered bits can represent numbers in the range, but haven't explained why selecting those bits at random give a uniform distribution (something which is, admittedly, so simple that explaining it clearly takes some subtlety).
dmckee

9
Wouldn't it be simpler to say that 8 (independently) random bits is uniformly distributed on [00000000, 11111111] for the same reason that 3 random digits is uniformly distributed on [000, 999]? The side rant about how/why computers use binary and the fractional bases is totally unnecessary and unrelated. I mean, the fact that binary uses only the symbols 0 and 1 is just an inherent property of base 2... no need to explain that. If you wanted to keep that kind of explanation in there, it would probably be more useful to explain how bases work in general, but it would still be beside the point.
Blackhawk

3
I am glad to see how much this answer has improved. However, I have difficulty seeing what base-10 representations have to do with this question (wouldn't base-3 or base-17 work just as well?) and I cannot see what might be special about 8 bits that doesn't also generalize to any finite number of bits. That suggests that most of the considerations in this answer are tangential or irrelevant.
whuber

3
And I wish to thank you for that felicitous characterization of the confusion expressed in the question: "lossy" and "lossless" encoding. It's memorable, slightly different than other perspectives, insightful, and potentially could clear up that confusion quickly.
whuber

1

I'd like to expand a little bit on the idea of order dependence vs. independence.

In the problem of calculating the expected number of heads from flipping 8 coins, we're summing the values from 8 identical distributions, each of which is the Bernoulli distribution [; B(1, 0.5) ;] (in other words, a 50% chance of 0, a 50% chance of 1). The distribution of the sum is the binomial distribution [; B(8, 0.5) ;], which has the familiar hump shape with most of the probability centered around 4.

In the problem of calculating the expected value of a byte made of 8 random bits, each bit has a different value that it contributes to the byte, so we're summing the values from 8 different distributions. The first is [; B(1, 0.5) ;], the second is [; 2 B(1, 0.5) ;], the third is [; 4 B(1, 0.5) ;] , so on up to the eighth which is [; 128 B(1, 0.5) ;]. The distribution of this sum is understandably quite different from the first one.

If you wanted to prove that this latter distribution is uniform, I think you could do it inductively — the distribution of the lowest bit is uniform with a range of 1 by assumption, so you would want to show that if the distribution of the lowest [; n ;] bits is uniform with a range of [; 2^n - 1} ;] then the addition of the [; n+1 ;]st bit makes the distribution of the lowest [; n + 1 ;] bits uniform with a range of [; 2^{n+1} - 1 ;], achieving a proof for all positive [; n ;]. But the intuitive way is probably the exact opposite. If you start at the high bit, and choose values one at a time down to the low bit, each bit divides the space of possible outcomes exactly in half, and each half is chosen with equal probability, so by the time you get to the bottom, each individual value must have had the same probability to be chosen.


It is not a continuous uniform. The bit is either 0 or 1 and nothing in between.
Michael R. Chernick

@MichaelChernick of course we're only dealing with discrete distributions here.
hobbs

The OP said that the bits are only 1 or 0 and nothing in between.
Michael R. Chernick

1
@MichaelChernick correct.
hobbs

1

If you do a binary search comparing each bit, then you need the same number of steps for each 8 bit number, from 0000 0000 to 1111 1111, they both have the length 8 bit. At each step in the binary search both sides have a 50/50 chance of occuring, so in the end, because every number has the same depth and the same probabilities, without any real choice, each number must have the same weight. Thus the distribution must be uniform, even when each individual bit is determined by coin flips.

However, the digitsum of the numbers isn't uniform and would be equal in distribution to tossing 8 coins.


1

There is only one sequence with eight zeros. There are seventy sequences with four zeros and four ones.

Therefore, while 0 has a probability of 0.39%, and 15 [00001111] also has a probability of 0.39%, and 23 [00010111] has a probability of 0.39%, etc., if you add up all seventy of the 0.39% probabilities you get 27.3%, which is the probability of having four ones. The probability of each individual four-and-four result does not have to be any higher than 0.39% for this to work.


This doesn't change the fact that all 256 sequences are equally probable.
Michael R. Chernick

@MichaelChernick I didn't say it did, I explicitly said that they all have a probability of 0.39%, I'm addressing OP's assumptions.
Random832

You are right. It is another way of saying what I said in my answer. Some of the other answers are wrong.
Michael R. Chernick

1

Consider dice

Think about rolling a couple of dice, a common example of non-uniform distribution. For the sake of the math, imagine the dice are numbered from 0 to 5 instead of the traditional 1 to 6. The reason the distribution is not uniform is that you are looking at the sum of the dice rolls, where multiple combinations can yield the same total like {5, 0}, {0, 5}, {4, 1}, etc. all generating 5.

However, if you were to interpret the dice roll as a 2 digit random number in base 6, each possible combination of dice is unique. {5, 0} would be 50 (base 6) which would be 5*(61) + 0*(60) = 30 (base 10). {0, 5} would be 5 (base 6) which would be 5*(60) = 5 (base 10). So you can see, there is a 1 to 1 mapping of possible dice rolls interpreted as numbers in base 6 versus a many to 1 mapping for the sum of the two dice each roll.

As both @Sycorax and @Blacksteel point out, this difference really boils down to the question of order.


0

Each bit you choose is independent from each other bit. If you consider for the first bit there is a

  • 50% probability it will be 1

and

  • 50% probability it will be 0.

This also applies to the second bit, third bit and so on so that you end up with so for each possible combination of bits to make your byte you have (12)8 = 1256 chance of that unique 8 bit integer occurring.


All of these statements are true, but this doesn't address why coin tosses, which are also fair and independent, have only 9 distinct outcomes when an outcome is defined as the number of heads and tails.
Sycorax says Reinstate Monica

That is only a result of placing the results into an ordered system after choosing them. The same distribution would be achieved even if the random bits were placed into random positions on the byte. You also will get the same distribution on coin tosses by the way you frame the question to finding the chance of getting a particular combination of heads and tails, such as HHTHTTTH. You will have a 1/256 chance of getting that exact sequence of coin tosses for the 8 coin tosses being performed each time.
Ahemone

This is all good information to include in the answer itself. My comment doesn't take issue with what you've said so much as the omission of a direct address of OP's source of confusion: the relationship between bits and coin flips.
Sycorax says Reinstate Monica

I should also say in order to get to the OP's expected value of 4 they are trying to find the probability of n many 1's or n many 0's in a given byte. This framing of the question would give the binomial distribution they were expecting in their mind rather than the uniform distribution of finding the probability of obtaining a certain value from those random bits.
Ahemone
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.