Đầu vào
Một ma trận được M
biểu diễn dưới dạng hai dòng số nguyên cách nhau. Mỗi dòng sẽ có cùng số nguyên và mỗi số nguyên sẽ là một trong hai hoặc -1 1. Số lượng các số nguyên trên mỗi dòng sẽ có mặt tại hầu hết 20. M
do đó sẽ 2
do n
nơi n
là số nguyên trên mỗi hai dòng.
Mã của bạn phải là một chương trình hoàn chỉnh. và chấp nhận đầu vào theo tiêu chuẩn trong hoặc từ một tệp (đó là lựa chọn của bạn). Bạn có thể chấp nhận đầu vào từ tiêu chuẩn trong, từ một tệp hoặc đơn giản là một tham số. Tuy nhiên, nếu bạn thực hiện sau, vui lòng cho một ví dụ rõ ràng về cách mã của bạn sẽ hoạt động và nhớ rằng đó phải là một chương trình hoàn chỉnh và cách ma trận M
sẽ được thể hiện trong đầu vào. Nói cách khác, bạn có khả năng phải thực hiện một số phân tích cú pháp.
Đầu ra
Các Shannon entropy nhị phân của sự phân bố của M*x
nơi các phần tử của x
được lựa chọn thống nhất và độc lập từ {-1,1}. x
là một n
vectơ cột hai chiều.
Entropy của phân phối xác suất rời rạc là
- sum p_i log_2(p_i)
Trong trường hợp này, p_i
là xác suất của i
thứ duy nhất có thể M*x
.
Ví dụ và gợi ý hữu ích
Như một ví dụ làm việc, chúng ta hãy ma trận M
được
-1 1
-1 -1
Bây giờ nhìn vào tất cả 2^2
các vectơ có thể khác nhau x
. Đối với mỗi một, chúng tôi tính toán M*x
và đặt tất cả các kết quả trong một mảng (một mảng 4 phần tử của các vectơ 2 thành phần). Mặc dù đối với mỗi trong số 4 vectơ xác suất xảy ra là 1/2^2 = 1/4
, chúng tôi chỉ quan tâm đến số lần mỗi vectơ kết quả duy nhấtM*x
xảy ra, và vì vậy chúng tôi tổng hợp các xác suất riêng lẻ của các cấu hình dẫn đến cùng một vectơ duy nhất. Nói cách khác, các M*x
vectơ duy nhất có thể mô tả kết quả của phân phối mà chúng tôi đang nghiên cứu và chúng tôi phải xác định xác suất của mỗi kết quả này (sẽ được xây dựng, luôn luôn là bội số nguyên 1/2^2
hoặc 1/2^n
nói chung) tính toán entropy.
Trong n
trường hợp chung , tùy thuộc vào M
kết quả M*x
có thể có của phạm vi có thể từ "tất cả khác nhau" (trong trường hợp này, chúng tôi có n
các giá trị i
trong p_i
và mỗi giá trị p_i
bằng 1/2^n
), cho "tất cả giống nhau" (trong trường hợp này có một khả năng duy nhất kết quả, và p_1 = 1
).
Cụ thể, đối với 2x2
ma trận trên, M
chúng ta có thể tìm thấy bằng cách nhân nó với bốn cấu hình có thể ( [+-1; +-1]
), rằng mỗi vectơ kết quả là khác nhau. Vì vậy, trong trường hợp này, có bốn kết quả, và do đó p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4
. Nhắc lại rằng log_2(1/4) = -2
chúng ta có:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Vì vậy, đầu ra cuối cùng cho ma trận này là 2.
Các trường hợp thử nghiệm
Đầu vào:
-1 -1
-1 -1
Đầu ra:
1.5
Đầu vào:
-1 -1 -1 -1
-1 -1 -1 -1
Đầu ra:
2.03063906223
Đầu vào:
-1 -1 -1 1
1 -1 -1 -1
Đầu ra:
3
x
gì? 2. Trong lợi ích của việc làm cho câu hỏi trở nên khép kín, entropy nhị phân của ShannonMx
được định nghĩa như thế nào?