Memasukkan
Sebuah matriks M
direpresentasikan sebagai dua garis bilangan bulat yang dipisahkan ruang. Setiap baris akan memiliki jumlah bilangan bulat yang sama dan setiap bilangan bulat akan menjadi -1 atau 1. Jumlah bilangan bulat per baris paling banyak 20. M
Oleh karena itu akan 2
dengan di n
mana n
jumlah bilangan bulat pada masing-masing dari dua baris.
Kode Anda harus merupakan program yang lengkap. dan menerima input baik pada standar di atau dari file (itu adalah pilihan Anda). Anda dapat menerima input dari standar masuk, dari file atau hanya sebagai parameter. Namun, jika Anda melakukan yang terakhir tolong berikan contoh eksplisit tentang bagaimana kode Anda harus bekerja dan ingat bahwa itu harus menjadi program yang lengkap dan bagaimana matriks M
akan diwakili dalam input. Dengan kata lain, Anda harus melakukan parsing.
Keluaran
The biner Shannon entropi dari distribusi M*x
di mana unsur-unsur x
yang seragam dan independen dipilih dari {-1,1}. x
adalah n
vektor kolom -dimensi.
Entropi dari distribusi probabilitas diskrit adalah
- sum p_i log_2(p_i)
Dalam hal ini, p_i
adalah probabilitas i
keunikan mungkin M*x
.
Contoh dan petunjuk bermanfaat
Sebagai contoh yang dikerjakan, biarkan matriks M
menjadi
-1 1
-1 -1
Sekarang lihat semua 2^2
kemungkinan vektor yang berbeda x
. Untuk masing-masing kita menghitung M*x
dan menempatkan semua hasil dalam array (array 4-elemen dari vektor 2-komponen). Meskipun untuk masing-masing dari 4 vektor kemungkinan itu terjadi adalah 1/2^2 = 1/4
, kami hanya tertarik pada berapa kali setiap vektor hasil yang unikM*x
terjadi, dan jadi kami merangkum probabilitas individu dari konfigurasi yang mengarah ke vektor unik yang sama. Dengan kata lain, kemungkinan M*x
vektor unik menggambarkan hasil distribusi yang kami selidiki, dan kami harus menentukan probabilitas masing-masing hasil ini (yang akan, dengan konstruksi, selalu menjadi kelipatan bilangan bulat dari 1/2^2
, atau 1/2^n
secara umum) untuk hitung entropi.
Dalam n
kasus umum , tergantung pada M
hasil yang mungkin M*x
dapat berkisar dari "semua berbeda" (dalam hal ini kami memiliki n
nilai i
dalam p_i
, dan masing-masing p_i
sama dengan 1/2^n
), hingga "semua sama" (dalam hal ini ada satu kemungkinan hasil, dan p_1 = 1
).
Secara khusus, untuk 2x2
matriks di atas M
kita dapat menemukan dengan mengalikannya dengan empat kemungkinan konfigurasi ( [+-1; +-1]
), bahwa setiap vektor yang dihasilkan berbeda. Jadi dalam hal ini ada empat hasil, dan akibatnya p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4
. Mengingat yang log_2(1/4) = -2
kita miliki:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
Jadi hasil akhir untuk matriks ini adalah 2.
Uji kasus
Memasukkan:
-1 -1
-1 -1
Keluaran:
1.5
Memasukkan:
-1 -1 -1 -1
-1 -1 -1 -1
Keluaran:
2.03063906223
Memasukkan:
-1 -1 -1 1
1 -1 -1 -1
Keluaran:
3
x
? 2. Untuk kepentingan membuat pertanyaan itu mandiri, bagaimanaMx
definisi biner Shannon didefinisikan?