タグ付けされた質問 「matrix」

行列は、行と列を持つ長方形に配置された数値のリストです。プログラミングでは、2Dアレイとも呼ばれます。マトリックスの操作に関する課題の場合は、このタグを使用してください。

16
最初のスパイラル、次に斜め
正の入力番号を指定してn、左上を時計回りに内側にらせん状にして、1〜の数のらせんを作成します。対角線の合計を取り(奇数の場合、真ん中の数は2回カウントされます)、その数を出力します。n^21nn^2 の例n = 1: 1 (1) + (1) = 2 の例n = 2: 1 2 4 3 (1+3) + (4+2) = 4 + 6 = 10 の例n = 4: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 (1+13+15+7) + (10+16+14+4) = 36 …

4
各列が1つのTrueになる行を見つけます(以前はKnuthのアルゴリズムX)。
仕事 ブール行列を指定して、各列にTrueが1つだけある行の1つ(またはオプションで複数)のサブセットを見つけます。任意のアルゴリズムを使用できますが、前の例のように非常に大きな行列をサポートする必要があります。 可能なアルゴリズムの1つ(KnuthのアルゴリズムX) このアルゴリズムを使用する必要はありませんが、これが最善のオプションになる場合があります。 行列Aに列がない場合、現在の部分解は有効な解です。正常に終了します。 それ以外の場合は、列cを選択します。 A r、c = 1となるような行rを選択します。 行rを部分解に含めます。 各列のためのJようにAのR、J = 1、 行ごとにIようにA 、I、J = 1、 削除行I行列からA。行列Aから 列jを削除します。 削減された行列Aに対してこのアルゴリズムを再帰的に繰り返します。 *ステップ3は非決定的であり、後でステップ3を呼び出して行を見つけられなかった場合に、バックトラックする必要があります。 入力 最小の2×2行列Aの任意の表現、たとえば数値またはブール配列 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 …

1
行列の縮約行エシェロン形式
この課題の目標は、行列を取り込んで行数を減らした形で出力するプログラムを作成することです。 マトリックスは、次のすべての条件を満たす場合、簡約行の形になります。 すべてのエントリがゼロである行がある場合、この行はゼロ以外のエントリを含む他の行の下にあります。 行の左端のゼロ以外のエントリはに等しくなり1ます。 行の左端のゼロ以外のエントリは、その列の唯一のゼロ以外のエントリです。 左端のゼロ以外の2つの異なるエントリを考えます。1つは行i、j列にあり、もう1つは行s、t列にあります。もしs>i、その後、 t>j。 ソース マトリックスを変換する一般的なプロセスは次のとおりです。 1からnまでの各行iを順番に処理し、すべてのゼロエントリの列をスキップして、1からmまでの列jにわたって作業します。 ゼロ以外のエントリを持つ次の列jを見つけます。 必要に応じて行を交換し、ピボット要素A(i、j)が非ゼロになるようにします。 ピボット行の各要素をピボットの値で除算して、ピボットを1に等しくします。 ピボット行の適切な倍数を他の行から減算して、ピボットの上下のすべての要素を0に等しくします。 すべての行について繰り返します。 このタイプのマトリックスの詳細を読みたい場合は、そのWikipediaの記事と、マトリックスを変換する手順を示すツールと記事(上記の手順)をご覧ください。 実際の課題については、次のとおりです。 入力は、STDINまたは同等のものを使用して任意の方法で指定できます。回答で説明してください。出力は、STDOUTまたは同等のものを介した入力と同じ形式の、入力の簡略化された行エシェロン形式になります。標準の抜け穴は許可されておらず、このタスクを実行する外部ライブラリまたは関数(たとえば、TI-BASICのrref(コマンド)も許可されていません。完全なプログラムまたは関数を記述できます。これはコードゴルフで、最低のBYTES勝です。幸運を! 入力例: [[2,1,1,14][-1,-3,2,-2][4,-6,3,-5]] 出力例: [[1,0,0,1][0,1,0,5][0,0,1,7]]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.