バックグラウンド
整数の配列のデルタは、連続する要素の差を取得することにより形成される配列です。たとえば[1, 2, 4, 7, 3, 9, 6]
、次のデルタがあります[1, 2, 3, -4, 6, -3]
。
ここで、整数の行列のデルタを、各行とそれに含まれる各列のデルタとして定義します。
例として:
Row deltas:
1 2 3 4 │ => [1, 1, 1]
4 5 6 7 │ => [1, 1, 1]
7 1 8 2 │ => [-6, 7, -6]
Column deltas (the matrix' columns have been rotated into rows for simplicity):
1 4 7 │ => [3, 3]
2 5 1 │ => [3, -4]
3 6 8 │ => [3, 2]
4 7 2 │ => [3, -5]
これにより、次のマトリックスデルタのリストが得られます。
[[1, 1, 1], [1, 1, 1], [-6, 7, -6], [3, 3], [3, -4], [3, 2], [3, -5]]
そして、ネストしたくないので、そのリストをフラットにします:
[1, 1, 1, 1, 1, 1, -6, 7, -6, 3, 3, 3, -4, 3, 2, 3, -5]
仕事
あなたの仕事は、入力として与えられた行列のすべてのデルタを合計することです。行列は負でない整数のみで構成されることに注意してください。
ルール
すべての標準ルールが適用されます。
行列の各行と列に少なくとも2つの値が含まれていると想定できるため、最小サイズは2x2になります。
マトリックスは、指定する限り、任意の妥当な形式で取得できます。
行列が正方であると仮定することはできません。
バイトカウントの削減に役立つ場合は、オプションで行数と列数を入力として使用することもできます(Cを見てください!)。
これはコードゴルフなので、各言語での最短コード(バイト単位)が優先されます。
テストケース
入力=>出力 [[1、2]、[1、2]] => 2 [[8、7、1]、[4、1、3]、[5、5、5]] => -9 [[1、2、3]、[4、5、6]、[7、8、9]] => 24 [[9、9、9、9、9、9]、[9、9、9、9、9、9]] => 0 [[1、3、14]、[56、89、20]、[99、99、99]] => 256 [[1、2、3、4]、[4、5、6、7]、[7、1、8、2]] => 9 [[13、19、478]、[0、12、4]、[45、3、6]、[1、2、3]] => -72
ṁ
ます。