La matrice cofattore è la trasposizione della matrice adiugata . Gli elementi di questa matrice sono i cofattori della matrice originale.
Il cofattore
(cioè l'elemento della matrice cofattore nella riga i e nella colonna j) è il determinante della sottostruttura formata eliminando l'ottava riga e la jesima colonna dalla matrice originale, moltiplicata per (-1) ^ (i + j).
Ad esempio, per la matrice
L'elemento della matrice cofattore nella riga 1 e nella colonna 2 è:
Puoi trovare informazioni su ciò che è determinante di una matrice e su come calcolarle qui .
Sfida
Il tuo obiettivo è produrre la matrice cofattore di una matrice di input.
Nota : sono consentiti incorporati che valutano matrici di cofattori o matrici corrugate, determinanti o simili .
Ingresso
La matrice può essere inserita come argomento della riga di comando, come parametro di funzione, in STDINo in qualsiasi modo più appropriato per la lingua utilizzata.
La matrice verrà formattata come un elenco di elenchi, ogni sottoelenco corrispondente a una riga, che contiene i fattori ordinati da sinistra a destra. Le righe sono ordinate dall'alto verso il basso nell'elenco.
Ad esempio, la matrice
a b
c d
sarà rappresentato da [[a,b],[c,d]].
Puoi sostituire le parentesi quadre e le virgole con qualcos'altro se si adatta alla tua lingua ed è ragionevole (ad es. ((a;b);(c;d)))
Le matrici conterranno solo numeri interi (che possono essere negativi) .
Le matrici saranno sempre quadrate (cioè lo stesso numero di righe e colonne).
Si può presumere che l'input sia sempre corretto (ovvero nessun problema di formattazione, nient'altro che numeri interi, nessuna matrice vuota).
Produzione
La matrice cofattore risultante può essere trasmessa a STDOUT , restituita da una funzione, scritta in un file o qualcosa di simile che si adatta naturalmente alla lingua che si utilizza.
La matrice cofattore deve essere formattata esattamente allo stesso modo delle matrici di input, ad es [[d,-c],[-b,a]]. Se leggi una stringa, devi restituire / generare una stringa in cui la matrice è formattata esattamente come nell'input. Se si utilizza qualcosa come ad esempio un elenco di elenchi come input, è necessario restituire anche un elenco di elenchi.
Casi test
- Ingresso:
[[1]]
Produzione: [[1]]
- Ingresso:
[[1,2],[3,4]]
Produzione: [[4,-3],[-2,1]]
- Ingresso:
[[-3,2,-5],[-1,0,-2],[3,-4,1]]
Produzione: [[-8,-5,4],[18,12,-6],[-4,-1,2]]
- Ingresso:
[[3,-2,7,5,0],[1,-1,42,12,-10],[7,7,7,7,7],[1,2,3,4,5],[-3,14,-1,5,-9]]
Produzione:
[[9044,-13580,-9709,23982,-9737],[-1981,1330,3689,-3444,406],[14727,7113,2715,-9792,414],[-28448,-2674,-707,16989,14840],[-2149,2569,-2380,5649,-3689]]
punteggio
Questo è code-golf, quindi vince la risposta più breve in byte.

