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

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

8
マトリックスを通る最適なパス
正の整数で構成される行列を指定すると、左上の要素から右下に移動するときに最小の合計のパスを出力します。垂直、水平、斜めに移動できます。上/下、右/左、および斜めにすべての側面に移動できることに注意してください。 例: 1* 9 7 3 10 2 2 10 4* 1* 1* 1* 7 8 3 6 3 8 9 5* 7 8 10 2 5 2 1* 4 5 1 1 3 6 7 9* 最小の合計を与えるパスはアスタリスクでマークされ、次の合計になります:1 + 4 + 1 + 1 + 1 + 5 + 1 …

20
対角線を合計する
入力として正の整数の行列を取り、行列を通る対角線上の要素の個々の合計を出力します。 対角線で右下に向かう線のみを数えます。以下に示すように、左下の要素のみを含む対角線から開始し、次にその上の長さ2の対角線(存在する場合)から右上の要素のみを含む対角線まで続けなければなりません。 例: Input: 8 14 5 1 10 5 5 8 6 6 8 10 15 15 4 11 Output: 15, 21, 20, 32, 29, 13, 1 (Diagonals: {{15},{6,15},{10,6,4},{8,5,8,11},{14,5,10},{5,8},{1}}) Input: 1 Output: 1 Input: 1 5 Output: 1, 5 Input: 4 1 Output: 1, 4 Input: 17 4 5 …
19 code-golf  math  matrix 

5
ハードオブジェクトまたはソフトオブジェクトはもっとありますか
What-Ifブックのオープニングに触発されました。 入力は、文字列、文字列のリストなどとしてのスペースの長方形で、#内部にで作成されたオブジェクトがあります。 ######## # # ######## ### #### ### #### ### オブジェクトは常に交差せず、触れない長方形になります。ソフトオブジェクトは#、中央がで埋められておらず、境界のみであるオブジェクトとして定義されます。ハードオブジェクトは、塗りつぶされたオブジェクトです。幅または高さのあるオブジェクト<=2はハードと見なされます。すべてのオブジェクトはハードまたはソフトです。 入力にさらに硬いオブジェクトがある"Hard"場合、output 、より柔らかい場合、output "Soft"、それらが等しい場合、output "Equal"。 これはcode-golfなので、バイト単位の最短コードが勝ちです! テストケース これらのケースは完全な入力ではなく、各オブジェクトを特徴付けるべきものです。実際の入力は、質問の上部にあるascii-artのようになります。 ハード # #### ## ## ########## ########## ########## 柔らかい ### # # ### ################### # # # # # # ################### #### # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

7
Hilbert-Curvify a Matrix
この質問に触発された 2D画像を1D文字列に展開する別の方法は、ヒルベルト曲線を使用することです。 計算中に使用される反復回数に応じて、この曲線には多くのバージョンがあります。以下は、1次から5次までのヒルベルト曲線の例です。 この曲線の計算方法は次のとおりです。最初に、図に示されているもの(n = 1の場合)として1次ヒルベルト曲線を定義し、1x1の正方形に収まるようにします。次に、この曲線の4つのコピーを作成し、それらを4x4の正方形に間隔を空けて、すべてが左側に向かって「凹面」を示すようにします。次に、2つの左端の次数1の曲線を反転し、上の1つの凹面が上を向き、下の凹面が下を向くようにします。最後に、隣接するヒルベルト曲線の角を接続します。(n + 1)次の曲線を取得する場合は、4つのn次の曲線でプロセスを繰り返すだけです。ここでプロセスの視覚化を見ることができます(プロセスの詳細を示す画像もすぐに追加します) この課題におけるあなたのタスクは、その行列の最低次のヒルベルト曲線に沿って整数の行列を展開することです。 簡単にするために、マトリックスの左上隅から曲線を開始します。 入力は整数のリストのリストとして受け取ることができます。各サブリストは行列の行を表します。 入力は正方行列(n * n)であると仮定できます。 例えば: 入力: [[ 1, 2,] [ 3, 4 ]] 出力: [ 1, 2, 4, 3 ] 図に示す1次のヒルベルト曲線を使用しているため 入力: [[ 1, 2, 3, 4, ] [ 5, 6, 7, 8, ] [ 9, 10, 11, 12, ] …

11
二乗差を最大化する
整数値の順列を検討1するがN。たとえば、次の例N = 4: [1, 3, 4, 2] このリストは循環的である1と見なし、そのように、および2隣接として扱われます。そのようなリストについて計算できる1つの量は、隣接する値の差の2乗の合計です。 (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 あなたの仕事は、正の整数を与えられて、この量を最大にする順列を見つけることNです。N = 4上記の例の場合、最適ではありません(実際、最小限です)。18次の順列(および他のいくつかの順列)の合計平方差を達成できます。 [1, 4, 2, 3] アルゴリズムは(のN)多項式時間で実行する必要があります。特に、すべての順列の差の合計を単純に計算することはできません。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 出力は、任意の便利で明確なフラットリストまたは文字列形式にすることができます。0toのN-1代わりに1toの値を持つリストを返すことを選択できますN。 標準のコードゴルフ規則が適用されます。 テストデータ この問題に対する優れた分析ソリューションがあります。たとえば、すべての有効なソリューションN = 10は次のリストと同等です(巡回シフトおよび反転まで)。 [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 私は(それがパターンを把握する、おそらく十分ですが)それを超えてあまりにも明らかにし、その代わりに任意のより多くの例を与える、あなたは結果が与えられたため、次の総乗違いがあることを確認することができますしたくありませんN。 N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

14
平方ランダム対称
チャレンジ 正方ランダム対称行列を返すまたは出力するプログラムまたは関数を作成します。 入力 N:行列のサイズ、すなわち6 x 6 出力 マトリックス。印刷して、文字列として(改行を使用して)返すか、リスト/配列のリスト/配列として返すことができます。 ルール 少なくともN異なる文字を使用する必要があります。ここNで、は正方行列のサイズです(入力)。文字[a、z] [A、Z]と数字[0、9](そして同時に1桁のみ)のみを使用しているので、あなたはそれN < 27とを仮定することができます。と数字。最後になりましたが、すべての文字/数字はゼロでない確率で発生する必要があります(均一な分布は必要ではありません)。ただし、結果には少なくとも異なる文字/数字が必要です。N > 2N <= 2N マトリックスは、水平および垂直の両方に対称である必要があります。 正確に2行2列には、厳密に1桁の1桁の数字を含める必要があります(その位置もランダムにする必要があります)。残りの行/列には文字のみが含まれます。文字を[a、z]および[A、Z]として、そしてもちろん1桁の数字を[0、9]として考えてください。 簡単にするために、大文字と小文字が区別されない限り、大文字と小文字は関係ないと想定できますa=A, b=B, etc。 可能なすべての出力は、ゼロ以外の確率で発生する必要があります。ランダム分布は均一である必要はありません。 例 入力:8 出力: c r p s s p r c r k o z z o k r u t 2 a a 2 t u …
18 code-golf  matrix 

2
これはWeyr行列ですか?
基本的なワイア正準型と呼ばれるn × n行列Wのタイプがあります。このようなマトリックスはブロックで記述され、次の参照図を使用して次のプロパティを持ちます。 主対角ブロックW IIがあり、N I ×N iが λ形式の行列I N I I N iはあるN I ×N I恒等行列。 nは1 ≥N 2 ≥...≥N R 最初の対角ブロックW K-1、K用2..r∈Kであり、N K-1 ×N Kである行列の行還元階段状のフル列ランクは、以上簡単に言えば、I N k個の上に座っn k-1 -n k行のゼロ。 他のすべてのブロックは0行列です。 例えば: 主な対角ブロック(黄色)は、n iが4、2、2、および1であるようなものです。 最初の超対角ブロックは緑色です。 グレーゾーンは、他のすべてのブロックで構成され、すべて0です。 この課題では、λ= 1と仮定します。 入力 任意の便利な形式の0と1の正方行列。 出力 入力行列がWeyrであるかどうかについて、2つの異なる値のいずれかを出力します。 ルール これはcode-golfです。各言語の最少バイト数が優先されます。標準のルール/抜け穴が適用されます。 テストケース 行の配列として提示されます。 ワイアー: [[1]] …

20
崩壊する行列
関連:レッツ・デザイン桁モザイク、印刷/出力L-phabet。サンドボックスの投稿はこちら C = columns and rows, S = starting point次のように2つの入力が行列を出力するとします。 Input 4, 3 1 2 3 0 2 2 3 0 3 3 3 0 0 0 0 0 説明 与えられた C = 4, S = 3 1)でC x C満たされた行列を作成する0 4 columns 4 _____|____ | | r --0 0 0 …
18 code-golf  matrix 

10
リストを最小限の行列に並べ替える
一意の厳密に正の整数のソートされていないリストが与えられた場合、最小限で2Dマトリックスにソートします。入力リストは複合長であることが保証されています。つまり、出力行列は必ずしも正方形ではなく、サイズがn x mとn,m > 1。 ここでの「最小ソート」とは、次のことを意味します。 リストを昇順で並べ替えます。 出力行列を可能な限りコンパクトにします-行列の次元の合計を最小化し20ます(たとえば、入力として入力要素の5x4場合、aではなくa または4x5output行列が必要です2x10)。 ソートされたリストの最初の要素から始めて、ソートされた数値を可能な限りマトリックスの左上まで圧縮します。 これは、リストを並べ替えてから、マトリックスの対角線に沿って左上からスライスすることと考えることができます。 例: 入力の1..20場合、出力は次のように5x4または4x5マトリックスです。 1 2 4 7 11 3 5 8 12 15 6 9 13 16 18 10 14 17 19 20 1 2 4 7 3 5 8 11 6 9 12 15 10 13 16 18 14 …

19
n列すべてに1〜L(n)の行列
チャレンジ: 入力として正の整数を含むリストLを取得します。 3 5 2 1 6 そして、n番目の列がベクトル1:L(n)を含む行列を作成します。ここで、短い行にはゼロが埋め込まれます。 テストケース: 3 5 2 1 6 ----------------- 1 1 1 1 1 2 2 2 0 2 3 3 0 0 3 0 4 0 0 4 0 5 0 0 5 0 0 0 0 6 1 - 1 1 2 …
18 code-golf  matrix 

28
範囲内のマトリックス
チャレンジ 以下のテストケースに示されているように、整数n>0出力n+1 X n+1から1までのすべての整数を含む行列2n テストケース n=1 1 2 2 2 n=2 1 2 4 2 3 4 4 4 4 n=5 1 2 3 4 5 10 2 3 4 5 6 10 3 4 5 6 7 10 4 5 6 7 8 10 5 6 7 8 9 …

21
自乗した対角線上の位置を出力
数値nを指定すると、n*n正方行列のいずれかの対角要素に該当する1ベースのインデックスの順序付きリストを出力します。 例: 入力の場合3: 正方形は: 1 2 3 4 5 6 7 8 9 ここで\、/またはで表されるすべてのインデックスを選択しますX(#または非対角位置は拒否されます) \ # / # X # / # \ 出力は次のとおりです。 [1,3,5,7,9] テストケース: 1=>[1] 2=>[1,2,3,4] 3=>[1,3,5,7,9] 4=>[1,4,6,7,10,11,13,16] 5=>[1,5,7,9,13,17,19,21,25] 受け入れられる回答はありません。各言語の最短コードを知りたい。
18 code-golf  math  matrix 

11
スパース行列を圧縮する
圧縮されたスパース行(CSR、CRSまたはYale形式)を使用してスパース行列を圧縮します。 これらはすべて同じ圧縮形式です(新しいエールを無視します)。 入力は、任意の2Dデータ構造(リストのリストなど)である場合があります:例 [[0 0 0 0], [5 8 0 0], [0 0 3 0], [0 6 0 0]] 出力は出力を示し、3つの1Dデータ構造(リストなど)でなければならないA、IAそしてJA例えば、 [5, 8, 3, 6] [0, 0, 2, 3, 4] [0, 1, 2, 1,] プロセスはウィキペディアで説明されています: 配列Aの長さはNNZであり、Mのすべての非ゼロエントリを左から右、上から下(「行優先」)の順序で保持します。 配列IAの長さはm + 1です。これは、次の再帰的な定義によって定義されます。 IA [0] = 0 IA [i] = IA [i − 1] +(元の行列の(i …

2
魔法は可能ですか?
魔方陣は、あるn行N範囲の異なる正の整数で満たされ、正方格子、1,2 ... N ^ 2、各セルは異なる整数であり、各行の整数の和を含むように、列と対角線は等しい。 あなたの仕事は、正の数字で構成されるn行n列の行列と、空のセルのプレースホルダー文字(0を使用しますが、任意の非数値文字またはデータ型を使用できます)を取得し、それが不足している数字を入力して魔方陣を作ることが可能 行列は少なくとも2行2列、最大10行10列になります。最小の非自明な魔方陣は3行3列です。入力行列の数値はn ^ 2よりも大きい場合があり、すべてのセルが塗りつぶされる可能性があります。 テストケース: 2 2 2 0 False 8 0 6 0 5 0 0 9 2 True 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 True 10 0 1 0 5 9 3 7 …

5
ジョーダン分解
重要な注意:この課題は正方行列にのみ適用されるため、「行列」という用語を使用するときは常に、正方行列を参照していると想定されます。簡潔にするために、「正方形」の説明は省略します。 バックグラウンド 行列式の計算、線形システムの解決、スカラー値関数のマトリックスへの拡張など、マトリックスに関連する多くの操作は、同様の対角マトリックス(主対角上にない要素が0であるマトリックス)を使用することで簡単になります元の行列(つまり、入力行列Aと対角行列の場合D、; Pなどの可逆行列が存在し、固有値、行列式、トレースなどの重要なプロパティを共有します)。(解くことによって与えられた行列の特性多項式の根の異なる固有値を持つ行列のため、同じ寸法の単位行列である)、対角化は単純です。D = P^(-1) * A * PDAdet(A-λI) = 0λIADは、主対角線上に固有値を持つ行列であり、Pそれらの固有値に対応する固有ベクトルから形成された行列です(同じ順序で)。このプロセスはeigendecompositionと呼ばれます。 ただし、固有値が繰り返される行列は、この方法では対角化できません。幸いなことに、任意の行列のヨルダン正規形はかなり簡単に計算でき、通常の対角行列よりも作業するのはそれほど難しくありません。また、固有値が一意である場合、Jordan分解は固有分解と同一であるという優れた特性を備えています。 ヨルダン分解の説明 A固有値の幾何学的多重度がすべて1である正方行列の場合、ジョーダン分解のプロセスは次のように記述できます。 みましょうλ = {λ_1, λ_2, ... λ_n}の固有値のリストでA連続して登場する繰り返し固有値で、多様で、。 J要素がの要素である対角行列をλ同じ順序で作成します。 多重度が1より大きい各固有値について、最後を除いて1、の主対角の固有値の繰り返しのそれぞれの右側にa を配置しJます。 結果の行列Jは、のジョーダン正規形ですA(固有値の順序に応じて、特定の行列に対して複数のジョーダン正規形が存在する可能性があります)。 実例 ましょうはA、次の行列です: の固有値はA、多重度で、ですλ = {1, 2, 4, 4}。これらを対角行列に入れると、次の結果が得られます。 次に、1繰り返し固有値のそれぞれのうち1つを除くすべての右側にs を配置します。以来4唯一の繰り返し固有値は、我々は、単一の配置1最初の4の次に: これは、Jordanの正規形ですA(単一のマトリックスに複数の有効なJordan正規形が含まれる可能性がありますが、説明のためにその詳細を詳しく説明します)。 タスク A入力として正方行列を指定し、の有効なヨルダン正規形を出力しますA。 入力および出力は、任意の妥当な形式(2D配列/リスト/任意、リスト/配列/列または行ベクトルの任意、組み込み行列データ型など)になります。 の要素と固有値は、A常に範囲内の整数になります[-200, 200]。 簡単にするために、すべての固有値の幾何学的多重度は1になります(したがって、上記のプロセスが成り立ちます)。 A せいぜい10x10マトリックスと少なくとも2x2マトリックスになります。 固有値や固有ベクトルを計算したり、固有分解、ヨルダン分解、その他の種類の分解/対角化を実行する組み込み関数は許可されていません。行列演算、行列反転、およびその他の行列組み込みが許可されています。 テストケース [[1, 0], [0, 1]] …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.