Có phải khái niệm về bit bit bit trong lập trình máy tính có giống với khái niệm về bit bit bit trong lý thuyết thông tin không?


7

cho đến hôm nay tôi mới biết rằng một bit là một biến hoặc một khoảng trống trong bộ nhớ có thể chứa giá trị là Một (cao) hoặc Không (thấp). Đây là khái niệm tôi học được từ việc học lập trình máy tính, vi xử lý hoặc bus DATA, v.v.

Nhưng sau khi bắt đầu khóa học về lý thuyết thông tin, tôi phát hiện ra rằng bit được thể hiện dưới dạng nội dung thông tin của một biểu tượng trong tin nhắn. Điều này được tính bằng cách lấy logarit (cơ sở 2) của nghịch đảo xác suất xuất hiện của ký hiệu.

Hai khái niệm này có giống nhau không? Một mặt một bit là một biến có thể lưu trữ bằng 0 hoặc một. Mặt khác, một bit là độ không đảm bảo liên quan đến một trong hai ký hiệu có xác suất xuất hiện là 0,5. Vì vậy, 1 bit trong lập trình máy tính hoặc mã ASCII có nghĩa là 1 bit trong nội dung thông tin của lý thuyết nguồn hoặc thông tin?

Một chút chỉnh sửa: đây là một điều tôi đang gặp khó khăn khi hiểu chủ đề này. Xem, trong truyền dữ liệu của bảng chữ cái tiếng Anh, nếu chúng ta sử dụng mã ASCII, về cơ bản chúng ta đại diện cho mỗi ký hiệu có 8 bit. Giả sử đó là 00000000 cho a, 00000001 cho b, v.v. Vì vậy, về cơ bản chúng tôi đang phân bổ 8 mức lượng tử hóa cho mỗi biểu tượng.

Nhưng khi lý thuyết thông tin ra đời, chúng ta sẽ tính đến xác suất của từng biểu tượng. 'E' có tần số cao nhất, trong đó 'Z' có tần số thấp nhất. Vì vậy, nội dung thông tin trung bình giảm xuống còn 3 hoặc 4 bit, phải không?

Cuốn sách của tôi nói, 'Entropy hoặc nội dung thông tin trung bình là số bit trung bình tối thiểu cần thiết để đại diện cho mỗi mẫu mà không bị biến dạng. Vì vậy, trong trường hợp này, để truyền dữ liệu hiệu quả, chúng ta có tạo ra bốn mức lượng tử hóa tối đa cho mỗi ký hiệu không? Bởi vì, trung bình họ mang thông tin trị giá 4 bit. Nếu đó là như vậy, không phải bit trong lý thuyết thông tin giống như trong lập trình máy tính, truyền dữ liệu hoặc mã ASCII, v.v.?

Bạn có thể nhận được rằng tôi rõ ràng là một người mới ở đây: p


một điều cần thêm vào câu trả lời của MBaz là việc chia tỷ lệ "bit" trong lý thuyết thông tin giống như "bit" trong bộ nhớ máy tính. có những đơn vị thông tin khác trong Shannon IT. bất cứ điều gì nhân lênI(m)=Clog(P(m))chức năng. nếu đó làC=1log(2) quy mô chức năng đăng nhập, sau đó I(m)tính bằng bit.
robert bristow-johnson

@ robertbristow-johnson, đó là một điểm tốt.
MBaz

1
Mã hóa Huffman cố gắng đạt đến giới hạn lý thuyết thông tin bằng cách gán ít bit hơn cho các ký hiệu thường xuyên. Đây là một quá trình gần đúng vì tần số thực không xác định và vì số bit phải còn nguyên. Mã hóa số học làm tốt hơn và quản lý để đóng gói bằng cách sử dụng số bit phân đoạn cho mỗi ký hiệu.
Yves Daoust

tần số (giả sử của các ký tự, nếu đó là tệp văn bản) có thể được biết bằng cách đếm. cũng có thể nhóm các ký hiệu khác nhau (với số bit phân đoạn) thành một thông điệp ghép đơn gần với số bit nguyên. nhưng nó sẽ luôn kém hiệu quả hơn so với ràng buộc lý thuyết.
robert bristow-johnson

Câu trả lời:


7

Chúng không giống nhau, nhưng chúng có liên quan. Đặc biệt, nếu bạn nhìn vào bộ nhớ máy tính đang giữM Các bit "máy tính", trong đó mỗi bit có thể được coi là ngẫu nhiên và độc lập với tất cả các bit khác và có khoảng 50% số không, thì bộ nhớ cũng giữ khoảng M "Lý thuyết thông tin" bit.

Tất nhiên, điều này thường không phải là trường hợp: các bit máy tính thường có mối tương quan và không ngẫu nhiên thống nhất. Đây là lý do tại sao chúng có thể được nén. Các chương trình máy nén như LZW ("bộ mã hóa nguồn" theo cách nói lý thuyết thông tin) hoạt động, theo một nghĩa nào đó, bằng cách làm cho mỗi bit máy tính giữ một bit thông tin.

Chỉnh sửa để thêm: Ví dụ này có thể làm cho sự khác biệt rõ ràng hơn. Hãy xem xét một nguồn không có bộ nhớ với hai đầu ra,m1=000m2=001, với xác suất 0,5 cho mỗi. Rõ ràng, thông tin trong mỗi tin nhắn là một (thông tin) bit, nhưng độ dài của nó là ba bit (máy tính). Một bộ mã hóa nguồn, như thuật toán Huffman, sẽ dễ dàng mã hóa các thông điệp tớic1=0c2=1, nén đầu ra nguồn. Bạn có thể dễ dàng ngoại suy ví dụ này thành một nguồn tạo ra văn bản được mã hóa ASCII.

Lưu ý rằng, trong trường hợp ngôn ngữ viết nói chung và tiếng Anh nói riêng, không ai biết entropy nguồn thực sự là gì, bởi vì không có mô hình cho nó. Đó là lý do tại sao có các cuộc thi để nén tốt nhất các văn bản lớn; không ai thực sự chắc chắn thuật toán nén tối ưu cho tiếng Anh là gì.


Cảm ơn MBaz. Nhưng đây là một điều tôi đang gặp khó khăn khi hiểu chủ đề này. Xem, trong truyền dữ liệu của bảng chữ cái tiếng Anh, nếu chúng ta sử dụng mã ASCII, về cơ bản chúng ta đại diện cho mỗi ký hiệu có 8 bit. Giả sử đó là 00000000 cho a, 00000001 cho b, v.v. Vì vậy, về cơ bản chúng tôi đang phân bổ 8 mức lượng tử hóa cho mỗi biểu tượng. Nhưng khi lý thuyết thông tin ra đời, chúng ta sẽ tính đến xác suất của từng biểu tượng. 'E' có tần số cao nhất, trong đó 'Z' có tần số thấp nhất. Vì vậy, nội dung thông tin trung bình giảm xuống còn 3 hoặc 4 bit, phải không?
benjamin

@benjamin, điều đó đúng, và đó là lý do văn bản có thể được nén rất nhiều. Nó chứa ít thông tin hơn số bit (máy tính) được sử dụng để thể hiện nó.
MBaz

Xin chào, tôi đã đăng bình luận trong phần trả lời một cách chi tiết vì nó đã trở nên quá dài. Phải quên xóa nó đi. btw, về cơ bản có nghĩa là các ký hiệu văn bản chứa thông tin có giá trị 3 đến 4 bit trong khi chúng ta sử dụng 8 bit để truyền chúng, phải không? Vì vậy, chúng chứa các bit vô dụng hoặc dư thừa. Vì vậy, để truyền dữ liệu hiệu quả, chúng ta có thể mã hóa chúng bằng cách sử dụng ít bit hơn và do đó nén chúng. Điều đó có nghĩa là chúng ta có thể tạo các mức lượng tử hóa ít hơn để mã hóa chúng. Trước đây chúng tôi đã tạo ra 8 mức lượng tử hóa, nhưng bây giờ 4 mức lượng tử hóa là đủ.
benjamin

Một mức lượng tử hóa là 1 bit chữ số nhị phân. Vì vậy, bây giờ chúng ta có thể sử dụng các mức lượng tử hóa ít hơn hoặc các bit chữ số nhị phân ít hơn. Vì vậy, chúng ta không xem xét các bit số nhị phân và bit lượng tử hóa về cơ bản là giống nhau sao? Trước đó, chúng tôi đã sử dụng 8 bit để truyền một ký hiệu duy nhất. Nhưng bây giờ chúng ta biết các ký hiệu chỉ có giá trị trung bình 4 bit thông tin. Vì vậy, chúng tôi đang gửi cho họ bằng cách sử dụng 4 mức lượng tử hóa hoặc 4 bit chữ số nhị phân, vì chúng mang 4 bit thông tin. Trong thực tế, tôi đã cố gắng tự tìm hiểu một chút về mã hóa Hoffman, nhưng đây là nơi tôi thực sự bị mắc kẹt.
benjamin

@benjamin, tôi nghĩ bạn đang đi đúng hướng ở đây. Hãy suy nghĩ về nó theo cách này, khi văn bản (hoặc bất kỳ tệp hoặc ngày máy tính nào) được nén hoàn hảo, mỗi bit máy tính trong đó sẽ mang một bit thông tin.
MBaz

2

Bit là một đơn vị đo lường và nhiều đại lượng được đo bằng bit. Đó không phải là một chút trong lập trình và lý thuyết thông tin có nghĩa là những thứ khác nhau. Đó là bộ nhớ và nội dung thông tin đại diện cho các đại lượng khác nhau về mặt khái niệm.

Ví dụ: chúng tôi có thể lấy mật khẩu '' 123456 ''. Nếu được mã hóa bằng UTF-8, nó cần 6 * 8 = 48 bit bộ nhớ. Đối với mục đích trong thế giới thực, nội dung thông tin của nó là khoảng 10 bit. Bit có nghĩa là giống nhau trong cả hai trường hợp, số lượng được đo là khác nhau. Nếu bạn nén mật khẩu, dung lượng bộ nhớ sẽ giảm, nhưng nội dung thông tin sẽ không thay đổi.

Một sự tương tự: Các đại lượng vật lý như trọng lực và lực điện từ đều được đo bằng Newton nhưng đại diện cho các loại tương tác khác nhau. Về mặt thực nghiệm, bạn có thể thấy rằng đơn vị Newton đại diện cho cùng một ý tưởng trong cả hai trường hợp - lực hấp dẫn và lực điện từ có thể cân bằng lẫn nhau (bay từ trường).

Tôi hy vọng điều đó sẽ giúp :)


0

Trên xe buýt dữ liệu, về lý thuyết chúng ta có thể làm tốt hơn lý thuyết thông tin nói. Tôi biết cách xây dựng một mạch sẽ cho phép tôi gửi 8 bit song song xuống 6 dây. Điều này liên quan đến một mẹo sử dụng điốt và kéo lên / xuống điện trở cho phép sử dụng cả ba trạng thái không cháy của dây kỹ thuật số để truyền tải thông tin. Với 3 trạng thái gồm 6 dòng, tôi nhận được 729 trạng thái có thể, cho phép tôi mang EOF, INT, CLK và ngắt kết nối trong kênh chính và vẫn còn nhiều chỗ (điều này chỉ sử dụng 518 trong số 729 trạng thái).


3
Bây giờ, đó chỉ là xác định lại kênh và thêm bộ nhớ;)
ngôi sao sáng

1
Những gì trevor nói. Bạn mặc nhiên cho rằng "nhà lý thuyết thông tin" chỉ sử dụng kênh một lần trong mỗi khoảng thời gian ký hiệu để gửi 1 thông tin của H hoặc L, nhưng nếu bạn thêm các trạng thái, bạn đang làm điều gì đó không giống nhau :)
Marcus Müller
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.