Đầu vào
Một ma trận được Mbiể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. Mdo đó sẽ 2do nnơi nlà 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 Msẽ đượ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*xnơ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}. xlà một nvectơ 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_ilà xác suất của ithứ 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^2các vectơ có thể khác nhau x. Đối với mỗi một, chúng tôi tính toán M*xvà đặ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*xvectơ 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^2hoặc 1/2^nnói chung) tính toán entropy.
Trong ntrường hợp chung , tùy thuộc vào Mkết quả M*xcó 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ó ncác giá trị itrong p_ivà mỗi giá trị p_ibằ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 2x2ma trận trên, Mchú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) = -2chú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
xgì? 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?