チャレンジ
a, b, c, d, e, f, g, h, i
入力として、正方行列に対応する9つの数値を与えます。
M=⎛⎝⎜adgbehcfi⎞⎠⎟
行列の逆行列M−1を見つけて、その成分を出力します。
逆行列
3 x 3の逆行列は、次の式に従います。
MM−1=M−1M=I=⎛⎝⎜100010001⎞⎠⎟
そして、次のように計算できます:
M−1=1det(M)CT
ここで、は補因子の行列です。C
C=⎛⎝⎜ei−fhch−bibf−cefg−diai−cgcd−afdh−egbg−ahae−bd⎞⎠⎟
そして、は転置です。CCTC
CT=⎛⎝⎜ei−fhfg−didh−egch−biai−cgbg−ahbf−cecd−afae−bd⎞⎠⎟
そしての決定要因である。Mdet(M)M
det(M)=a(ei−fh)−b(di−fg)+c(dh−eg)
実施例
たとえば、入力がであるとしましょう0, -3, -2, 1, -4, -2, -3, 4, 1
。これはマトリックスに対応します:
M=⎛⎝⎜01−3−3−44−2−21⎞⎠⎟
まず、上記の式を使用して、行列式と呼ばれるものを計算します。
det(M)=0(−4×1−(−2)×4)−(−3)(1×1−(−2)×−3)+(−2)(1×4−(−4)×−3)=1
次に、補因子の行列を計算しましょう:
C=⎛⎝⎜−4×1−(−2)×4−(−3×1−(−2)×4)−3×−2−(−2)×−4−(1×1−(−2)×−3)0×1−(−2)×−3−(0×−2−(−2)×1)1×4−(−4)×−3−(0×4−(−3)×−3)0×−4−(−3)×1⎞⎠⎟
=⎛⎝⎜4−5−25−6−2−893⎞⎠⎟
次に、(行と列を反転)を転置してを取得する必要があります。C TCCT
CT=⎛⎝⎜45−8−5−692−23⎞⎠⎟
最後に、逆関数を次のように見つけることができます。
M−1=1det(M)CT=11⎛⎝⎜45−8−5−692−23⎞⎠⎟=⎛⎝⎜45−8−5−692−23⎞⎠⎟
したがって、出力はになります4, -5, -2, 5, -6, -2, -8, 9, 3
。
ルール
指定された行列は常に逆行列(つまり、非特異行列)を持ちます。行列は自己反転する場合があります
指定された行列は、常に9つの整数を持つ3行3列の行列になります
入力の数値は常に範囲の整数になります−1000≤n≤1000
行列の非整数成分は、小数または小数として指定できます
例
Input > Output
1, 0, 0, 0, 1, 0, 0, 0, 1 > 1, 0, 0, 0, 1, 0, 0, 0, 1
0, -3, -2, 1, -4, -2, -3, 4, 1 > 4, -5, -2, 5, -6, -2, -8, 9, 3
1, 2, 3, 3, 1, 2, 2, 1, 3 > -1/6, 1/2, -1/6, 5/6, 1/2, -7/6, -1/6, -1/2, 5/6
7, 9, 4, 2, 7, 9, 3, 4, 5 > -1/94, -29/94, 53/94, 17/94, 23/94, -55/94, -13/94, -1/94, 31/94
勝ち
バイト単位の最短コードが優先されます。