Tirei os primeiros 1mil bits de um arquivo de vídeo aleatório e, em seguida, para cada byte, mapei cada bit para uma lixeira, por exemplo
c_b = ''.join(format(ord(b), '08b') for b in c)
bin1.append(c_b[0])
Então contou:
bin1_counted = Counter(bin1)
e os resultados foram:
Counter({'0': 646491, '1': 603686})
Counter({'0': 642133, '1': 608044})
Counter({'0': 644298, '1': 605879})
Counter({'0': 641961, '1': 608216})
Counter({'0': 641778, '1': 608399})
Counter({'0': 640538, '1': 609639})
Counter({'0': 641531, '1': 608646})
Mostra claramente uma distribuição igual. Mas eu esperava que alguém pudesse me explicar por que isso é assim, considerando minha suposição de que o primeiro bit em cada byte deveria ter muito mais do 0que 1porque estou pensando que é provável que deva haver algum tipo de distribuição de sino de todos os bytes ', ou seja, eu esperava que o primeiro / segundo bit de cada byte tivesse muito mais, 0pois os caracteres podem ser representados antes de chegar a 64?
ord(b), '08b') for b in c. Eu tenho que ord()cada próximo personagem?