転置行列A^tを持つ行列Aの積を求める必要があるので、3番目の行列B = A * A^tを求める必要があります。 例:A=[[1,2],[3,4]]
(その後A^t=[[1,3],[2,4]]
)はB=[[5,11],[11,25]]
(各サブリストは、行列の行である)Prolog - 転置行列の乗算
まず私はA^Tの列がためだからAの行であるように、これは簡単であるべきだと思いますA^Tの列とAの行の内積は、私がこれを使用することができると思う:
sum([M|Ms],[N|Ns],Sum) :-
sum(Ms,Ns,S),
Sum is S+M*N.
sum([],[],0).
私もclpfd場合や、他を使用することはできません。
私は立ち往生しており、次に何をすべきか分かりません。
あなたは既に単一の要素を計算する方法を知っています。だから、あなたはあなたの 'sum' n^2回を計算する述語を書かなければなりません。 –
つまり、マトリックスの2つの行ごとに。 –