入力
M2つのスペースで区切られた整数の行として表される行列。各行整数の同じ数を有し、各整数のいずれかであろう-1又は線当たり整数の1数が最も20であろうが M故になり2によってn場合n2本のラインのそれぞれに整数の数です。
コードは完全なプログラムでなければなりません。標準入力またはファイルからの入力を受け入れます(これは選択です)。標準入力、ファイル、または単にパラメータとして入力を受け入れることができます。ただし、後者を行う場合は、コードがどのように機能するかを明示的に示し、完全なプログラムでなければならずM、入力でマトリックスがどのように表されるかを覚えておいてください。言い換えれば、あなたは何らかの解析をしなければならない可能性が高いです。
出力
の要素が{-1,1}から均一かつ独立して選択される分布のバイナリシャノンエントロピー。 は、次元の列ベクトルです。M*xxxn
離散確率分布のエントロピーは
- sum p_i log_2(p_i)
この場合、p_iは、i番目の一意の可能性の確率ですM*x。
例と役立つヒント
実用的な例として、マトリックスMを
-1 1
-1 -1
今、すべての2^2異なる可能なベクトルを見てくださいx。それぞれについて、M*xすべての結果を計算して配列(2要素ベクトルの4要素配列)に入れます。4つのベクトルのそれぞれについて、発生する確率はですが1/2^2 = 1/4、各一意の結果ベクトルM*xが発生する回数にのみ関心があるため、同じ一意のベクトルにつながる構成の個々の確率を合計します。言い換えると、可能な一意のM*xベクトルは、調査している分布の結果を記述し、これらの各結果の確率を決定する必要があります(構築により、常に整数倍1/2^2、または1/2^n一般的に)エントロピーを計算します。
一般的なnケースではM、可能な結果に応じて、M*x「すべて異なる」(この場合はinのn値がiありp_i、それぞれp_iがに等しい1/2^n)から「すべて同じ」(この場合は単一の可能性があります)結果、およびp_1 = 1)。
具体的には、上記の2x2行列の場合M、4つの可能な構成([+-1; +-1])を乗算することで、結果の各ベクトルが異なることがわかります。そのため、この場合、4つの結果があり、結果としてp_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4。log_2(1/4) = -2私たちが持っていることを思い出してください:
- sum p_i log_2(p_i) = -(4*(-2)/4) = 2
したがって、このマトリックスの最終出力は2です。
テストケース
入力:
-1 -1
-1 -1
出力:
1.5
入力:
-1 -1 -1 -1
-1 -1 -1 -1
出力:
2.03063906223
入力:
-1 -1 -1 1
1 -1 -1 -1
出力:
3
x?2.質問を自己完結型にするために、バイナリシャノンエントロピーはどのようにMx定義されますか?