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

バイナリマトリックスを含む課題。バイナリ行列は、ブール値(0または1)のみを含む行列です。バイナリ行列の演算はブール代数で行われます。

16
その気を散らす背景を切り落としてください!
写真を撮っているときは迷惑ではありませんが、背景は画像の実際の実体を損ないますか?そうだと思います。この問題を取り除くために、私はどれだけ作物を刈る必要があるかを知る必要があります!しかし-いつものように-私はとても怠け者なので、私のためにこれをする誰かが必要です... タスクとルール 画像を表すバイナリマトリックスが与えられた場合、元のマトリックスのすべての111を含む最小のサブマトリックスの次元(幅と高さ)を出力します。サブ行列は元の行列から、隣接するエントリのブロックです。同様に、これは元の隣接する行のサブセットと隣接する列のサブセットをオーバーラップさせることにより形成される新しいマトリックスです。 入力として行列の幅と高さも使用できます。 入力には、少なくとも1つの111が含まれることが保証されています。 これらの抜け穴はデフォルトでは禁止されていることに注意しながら、任意の標準的な方法で入力を取得し、出力を提供できます。これは code-golfなので、選択した言語で管理できる最小バイトでタスクを完了してください。 例 ⎡⎣⎢⎢⎢⎢⎢⎢000000110000110010000011000100⎤⎦⎥⎥⎥⎥⎥⎥⟶⎡⎣⎢110011100011010⎤⎦⎥⟶(5,3)[000000010100011011001010000000]⟶[101001101101010]⟶(5,3)\left[\begin{matrix} \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\\ \color{red}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}0\\ \color{red}0&\color{blue}1&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}1\\ \color{red}0&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0\\ \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\end{matrix}\right] \longrightarrow \left[\begin{matrix}1&0&1&0&0\\1&1&0&1&1\\0&1&0&1&0\end{matrix}\right]\longrightarrow(5,3) テストケース 入力| 出力 [[0,1,0,0,0,1,0]] ->(5,1)または(1,5) [[0,0,0,0,0]、[0,1,0,1,0]、[0,0,1,0,0]] ->(3,2)または(2,3) [[1,1,1,1]、[0,0,0,0]、[0,0,0,0]、[1,0,0,0]] ->(4,4) [[0,0,0,0,0,0]、[0,1,0,1,0,1]、[0,0,0,0,0,0]] ->(5,1)または(1,5) [[0,0,0,0,0]、[0,1,0,1,0]、[0,0,1,0,0]、[0,1,0,1,0]、[ 0,0,0,0,0]] ->(3,3) [[0,0,0,0,0,0]、[0,1,0,1,0,0]、[0,1,1,0,1,1]、[0,0,1、 0,1,0]、[0,0,0,0,0,0]] ->(5,3)または(3,5)

7
迷路のカットポイント
迷路は、任意の便利な形式で0(壁)と1(歩行可能な空間)のマトリックスとして与えられます。各セルは、4つ(またはそれ以下)の直交隣接ノードに接続されていると見なされます。連結成分は全て過渡互いに接続歩行セルの集合です。あなたの仕事は、カットポイントを特定することです-歩きやすいセルは、壁になった場合、接続されたコンポーネントの数を変更します。それらの位置でのみ1-sのブール行列を出力します。目標は、コードの最小バイトでそれを行うことです。 入力行列は、少なくとも3行3列で構成されます。そのセルの少なくとも1つは壁で、少なくとも1つは歩行可能です。関数またはプログラムは、TIO(または言語がTIOでサポートされていない場合は自分のコンピューター)で1分以内に以下の例を処理できる必要があります。 in: 11101001 11011101 00000001 11101111 11110101 00011111 10110001 11111111 out: 01000000 00001001 00000001 00000101 00110000 00010000 00000000 11100000 in: 1111111111111111 1000000000000001 1111111111111101 0000000000000101 1111111111110101 1000000000010101 1011111111010101 1010000001010101 1010111101010101 1010101111010101 1010100000010101 1010111111110101 1010000000000101 1011111111111101 1000000000000001 1111111111111111 out: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 …

4
二部ですか?
二部グラフは、頂点ないエッジが同じセット内の2つの頂点を接続しないように、2つの互いに素の集合に分割することができるグラフです。グラフが2色である場合にのみ、グラフは2部構成です。 チャレンジ あなたの仕事は、無向単純グラフの隣接行列を与えられて、それが二部グラフであるかどうかを決定することです。つまり、エッジが頂点iとjを接続する場合、行列の(i、j)と(j、i)の両方のエントリは1です。 グラフは無向で単純なので、その隣接行列は対称であり、0と1のみを含みます。 仕様 入力としてN行N列の行列を使用する必要があります(リストのリスト、文字列のリスト、Cのようなint**サイズ、フラット化された配列、生の入力など、任意の形式で)。 関数/プログラムは、グラフが2部構成である場合は真偽値を返し、そうでない場合は偽である必要があります。 テストケース ['00101', '00010', '10001', '01000', '10100'] : False ['010100', '100011', '000100', '101000', '010000', '010000'] : True (divide into {0, 2, 4, 5} and {1, 3}) ['00', '00'] : True 得点 答えを直接計算する組み込み関数は禁止されています。 これはcode-golfなので、今月末までに最短のプログラム(バイト単位)が勝ちます!

8
最小タクシー距離マップ
チャレンジの説明 タクシーメトリック、2点間の距離は次のように定義されます。 ゼロと1のみの行列を考えてみましょう: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 マトリックス内で1最も近い異なる 距離にそれぞれをマッピングしてみましょう1(もちろん、2つの隣接する行/列間の距離が1に等しいと仮定します): 0 0 0 3 0 2 0 0 0 0 0 0 0 0 0 1 0 0 3 0 …

2
ビット大陸を作る
ビットのマトリックス(少なくとも1つを含む1)があると想像してください。 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 …

3
2を法とするWythoff行列の特定の値を出力します
Wythoff行列は、Wythoffのゲームのチェス盤上の各正方形のグランディ数で構成される無限行列です。 このマトリックスの各エントリは、エントリの位置の上、左、または斜め北西に表示されない最小の非負数に等しくなります。 左上の20行20列の正方形は次のようになります。 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 0 4 5 3 7 8 6 10 11 9 13 14 12 16 17 15 19 20 2 0 1 5 3 4 8 …

3
マトリックスプロパティXの再検討(またはXの喜び)
この課題は、一部はアルゴリズムの課題、一部は最適化の課題、一部は単に最速のコードの課題です。 AT行列は、最初の行rと最初の列で完全に指定されますc。マトリックスの残りの各要素は、斜め上および左にある要素の単なるコピーです。それはM[i,j] = M[i-1,j-1]。正方形ではないT行列を許可します。ただし、行数は列数以下であると常に想定しています。たとえば、次の3 x 5 Tマトリックスを考えます。 10111 11011 11101 マトリックスに同じ(ベクトル)合計を持つ非同一のインデックスを持つ2つの空でない列のセットが含まれている場合、マトリックスはプロパティXを持つと言います。1つまたは複数の列のベクトル和は、単に列の要素ごとの合計です。つまり、x要素を含む2つ以上の列の合計は、それぞれがx要素を含む別の列です。1つの列の合計は、列そのものです。 最初の列と最後の列が同じであるため、上記のマトリックスにはプロパティXがあります。単位行列にプロパティXが含まれることはありません。 上記のマトリックスの最後の列を削除するだけの場合、プロパティXを持たず、4/3のスコアを与える例が得られます。 1011 1101 1110 タスク タスクは、バイナリエントリを持ち、プロパティX を持たない最高スコアのTマトリックスを見つけるためのコードを記述することです。わかりやすくするために、バイナリエントリを持つマトリックスは、各エントリが0または1であるというプロパティを持ちます。 スコア スコアは、列の数を最適なスコアマトリックスの行数で割ったものになります。 タイ・ブレーカー 2つの回答のスコアが同じ場合、最初に提出された方が勝ちです。 無制限のスコアを取得する方法を誰かが見つけた(非常に)まれなイベントでは、そのようなソリューションの最初の有効な証明が受け入れられます。可能性がさらに低い場合、有限行列の最適性の証明を見つけることができるので、もちろん勝利も授与します。 ヒント ここでは、プロパティXを使用せずに最高スコアのマトリックスを検索での回答はすべて有効ですが、最適ではありません。プロパティXのないT行列があり、それらは循環的ではありません。 たとえば、プロパティXのない7×12 Tの行列がありますが、そのような巡回行列はありません。 21/11は、これと以前の課題からの現在のすべての答えを打ち負かすでしょう。 言語とライブラリ 自由に利用できるコンパイラ/インタープリター/などを備えた任意の言語を使用できます。LinuxおよびLinuxでも自由に利用できるライブラリ用。 ボーナススコアが2を超える最初の回答には、すぐに200ポイントの賞金が授与されます。トン・ホスペルはこれを達成しました! 現在のリーダーボード C ++。Ton Hospelによるスコア31/15 Javaの。Peter Taylorによるスコア36/19 ハスケル。alexander-brettによるスコア14/8

2
孤独な島々
入力: 2つの異なる(オプション)値を含む2D配列。ルールを説明するときは0と1を使用します。入力フォーマットはもちろん柔軟です。 チャレンジ: ゼロは水であり、ゼロは島です。孤独を確実にするために、あなたの仕事はゼロの行と列を挿入することによってすべての島を水で囲むことです。水を無駄にしたくないので、追加する水の量を最小限に抑える必要があります。同じ量の水を追加する必要がある複数のソリューションがある場合は、行ではなく列を追加する必要があります。これをテストケースで示します。 出力: 新しく変更された2D配列。出力形式はもちろん柔軟です。 テストケース: 入力と出力はダッシュで区切られています。追加されたゼロは太字で示されています。テストケースをより便利な形式に変換する場合は、ここで回答の1つを使用してください。 1 --- 1 1 1 --- 1 0 1 1 1 1 1 --- 1 0 1 0 0 0 1 0 1 1 0 0 1 --- 1 0 0 0 0 1 ゼロの行ではなく、ゼロの列を追加したことに注意してください。これは、必要なゼロの数が等しく、列を優先する必要があるためです。 1 0 0 0 1 0 1 …

3
バイナリパズルソルバー
前書き パズルのルール: パズル(としても知られているバイナリTakuzuまたはSubikuは)理解することは非常に簡単で、かつ唯一のいくつかのルールがあります。 ゲームの名前はバイナリであるので、それはかなり明白だが、あなただけの0と1を記入することができます。 同じ数字を2つだけ縦または横に互いに隣接させることができます 各行と各列には、等しい量のゼロと1が含まれている必要があります(これは暗黙的に、すべてのバイナリゲームが常に偶数次元を持つことを意味します)。 行と列が重複していない場合があります(ゼロと1の順序がまったく同じ)。 必要に応じて、www.binarypuzzle.comでゲームをプレイできます。 戦術: ルール1により、次の場合は常に数字を入力できます。- 同じ数字が2つ縦または横にすでに隣接している場合、両側で反対の数字を入力できます。すなわち.11...→ 0110..。 -縦または横に同じ数字が2つあり、その間に1つのギャップしかない。すなわち.1.1..→.101.. ルール1により、3つのギャップが残っており、同じ数字を3つ隣接させることができない場合、ギャップの1つを埋めることができます。すなわち.0.1.0→ 10.1.0(まだ2つ入力する必要があり、3つの隣接するものを中央に配置することはできないため、最初のギャップはでなければなりません1。) ルール2により、行または列の残りのギャップの半分がすでに反対の桁で埋められている場合は、常に残りのギャップを埋めることができます。すなわち.1.011→010011 規則3により、同じ順序の行を解くために2つだけ残っている場合は、常に反対の数字を埋めることができます。すなわち101100 & 1..100→101100 & 110100 ルール3により、3つのギャップが同じ順序の線上に残っている場合、ギャップを埋めることができます。すなわち010011 & .1.01.→ 010011 & .1.010(1最後にaを入力することはできません。これは、他の2つのギャップにゼロを入力し、両方の行を順番に等しくする必要があるためです。) 例: いくつかの1と0が埋められた次の6x6グリッドから始めます(ドットはまだ埋めていないギャップです): .1.... .10.0. 1.11.. .1.... ...1.0 ...... ルール1および2により、次の数字を入力できます。 .1.01. .1010. 101100 010011 .0.1.0 .010.. ルール1により、行5、列1に1を入力できます。 .1.01. .1010. 101100 010011 10.1.0 .010.. ルール3により、行1、列6に0を入力できます(行4を見た場合): …

7
汚染の最終段階
5x5の受信者の内部にウイルスがいます。汚染がどのように伝播するかを知っているので、あなたの使命は汚染の最終段階を出力することです。 受取人 これは、5x5の2次元配列として表されます。 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 場所1とは、ウイルスがすでに汚染されて0いる場所と、汚染されていない場所を意味します。 ウイルスの伝播方法 汚染された位置はきれいにできません。 クリーンな位置は、隣接する位置(北、東、南、西のセル)の少なくとも2つが汚染されている場合にのみ、次の段階で汚染されます。 汚染の最終段階は、クリーンなセルを汚染できなくなったときに発生します。 サンプル 汚染の段階1として上記の受信者を使用すると、段階2は次のようになります。 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 …

7
pseudoprimesをゴルフしましょう!
はじめに/背景 で、最近の議論で暗号チャット私は議論するために/のヘルプ挑戦されたフェルマー素数判定テストとカーマイケル数を。このテストは、a^(p-1) mod p==1常に素数に当てはまるがp、常にコンポジットには当てはまらないという前提に基づいています。カーマイケル番号は、基本的にはフェルマートのテストで最悪の敵です。取得するために同時に素数にならないように選択aする必要がある番号です。が共素数でない場合、本質的には、自明ではない因子を見つけましたpa^(p-1) mod p!=1apそして、誰もが知っているように、因数分解は非常に難しい場合があります。特に、すべての要素が十分に大きい場合。これで、Fermatテストが実際にはあまり使用されない理由がよくわかります(より優れたアルゴリズムがあります)。これは、(セキュリティの観点から)防御者としてのあなたが同じような量の作業を行わなければならない数があるためです。攻撃者(つまり、数を因数分解します)。 これらの数値が魅力的である理由がわかったので、可能な限り最短の方法で数値を生成します。必要に応じて、生成したコードを記憶することができます。 カーマイケル番号は、OEISではA002997としても知られています。関連する課題はすでに ありますが、サイズではなく速度が最適化されているため、ここからのエントリは競争力がありません。同じ議論が逆の方向にも当てはまり、ここのエントリはサイズを優先して速度とトレードオフをする可能性があります。 仕様 入力 これは標準のシーケンスチャレンジなので、正または負でない整数nを入力として使用します。n必要に応じて、0または1のインデックスを付けることができます(指定してください)。 出力 出力は、必要にn応じて、-番目のカーマイケル番号または最初のnカーマイケル番号のいずれかになります(指示してください)。 仕様 整数xは、xが複合である場合にのみカーマイケル数であり、のすべての整数yについてgcd(x,y)=1、それを保持しy^(x-1) mod x==1ます。 誰が勝ちますか? これはcode-golfなので、バイトで最短のコードが優先されます!標準のIOと抜け穴のルールが適用されます。 テストケース 最初のいくつかのカーマイケル番号は次のとおりです。 561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

13
比較チェーンを拡張
ほとんどの言語と異なり、Python a<b<cは数学で行われるように評価し、ブール値a<bをと比較するのではなく、実際には3つの数値を比較しcます。これをC(および他の多くの)で記述する正しい方法は、a<b && b<c。 この課題の課題は、このような任意の長さの比較チェーンをPython /直感的な表現から他の言語でどのように記述するかまで拡張することです。 仕様書 プログラムは演算子を処理する必要があります。 ==, !=, <, >, <=, >=。 入力には、整数のみを使用した比較チェーンがあります。 途中の比較の真実性について心配する必要はありません。これは、純粋に構文解析/構文上の課題です。 入力には、スペースで分割することで解析を簡単にする回答を防ぐための空白はありません。 ただし、出力には、&&' のみ、または比較演算子と&&'の両方のいずれか、または両方を囲む単一のスペースがある場合がありますが、一貫性があります。 テストケース Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

30
int入力nを指定して、n * reversed(n)を出力します
整数nを指定して出力n * reversed(n) reversed(n)は、reverseの桁を取得したときに取得する数値ですn。 reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 最短のコードが勝ちます! リーダーボード コードスニペットを表示 var QUESTION_ID=144816,OVERRIDE_USER=71625;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

15
スコアリング6,5,4(別名船、船長、および乗組員)
Arnauldによるこのサイコロの挑戦からインスピレーションを得て略奪 入力 バイナリ3x3サブマトリックスで構成される5x1または1x5(選択)のダイスマトリックスが与えられます。 ゴール 有効なサイコロマトリックスが与えられたら、次のような6,5,4のルールを使用してスコアを付けます。 ロールに6,5,4が含まれている場合は、他の2つのサイコロを一緒に追加します。例:4、X、5,6、Y = X + Y それ以外の場合、スコアは0です。例:5、5、5、4、1 = 0 ゲームのWiki記事 サイコロパターン 1 :⎛⎝⎜0、 0、 00、1、 00、 0、 0⎞⎠⎟3 :⎛⎝⎜1 、0、00、1、 00、 0、1⎞⎠⎟または⎛⎝⎜0、 0、10、1、 01 、0、0⎞⎠⎟5 :⎛⎝⎜1 、0、10、1、 01 、0、1⎞⎠⎟2 :⎛⎝⎜1 、0、00、 0、 00、 0、1⎞⎠⎟または⎛⎝⎜0、 0、10、 0、 01 、0、0⎞⎠⎟4 :⎛⎝⎜1 、0、10、 0、 01 、0、1⎞⎠⎟6 :⎛⎝⎜1 、0、11 、0、11 …

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 …

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