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

グリッドに関する課題。

5
2Dグリッドを塗りつぶします
チャレンジの説明 グリッドを 2次元の長方形配列(すべてのサブ配列が同じ長さであることを意味します)と呼びましょう。グリッドのすべての単位は、空のスペースまたは境界線です。文字のグリッドでは、空のスペースは1つの空白で表されます。他の文字はすべてボーダーとして扱われます。サンプルグリッド(+さん、|さんと-読みやすさのために追加の- 彼らは、グリッドの一部ではありません): +----+ | | | | | | | | | | +----+ an empty 4x5 grid +------+ | | | # | | # | +------+ a 6x3 grid with 2 borders +----------+ | | | | | ##### | | # # | | ## …

2
下り坂の迷路ソルバー
下り坂の迷路は、0から9までの一連のスペースで区切られた数字の列と、1つの「S」と1つの「X」として与えられます。ここで、Sは開始を示し、Xは終了を示します。下り坂の迷路では、北、南、東、西(対角線なし)に隣接するスペースにのみ行くことができ、値以下のスペースにのみ行くことができます現在オンです。 プログラムは、迷路をナビゲートするためのパスを入力と同じ形式で出力する必要があります。通過したすべてのスペースにのみ「。」が必要です。それらの中に、そしてすべての訪問されていないスペースにそれらの中に「#」があるはずです。開始セルと終了セルもそれぞれ「S」と「X」を保持する必要があります。迷路には常に解決策があると考えることができます。 入力例: 3 3 3 3 2 1 S 8 9 3 1 1 3 3 0 6 8 7 1 2 2 4 3 2 5 9 7 1 2 1 5 4 3 4 4 6 1 1 X 6 4 4 5 5 5 出力例: . …

3
3x3接続コンポーネント
チャレンジ 次のASCIIグラフィックに示すように、3x3キンググリッドについて考えてみます。 A--B--C |\/|\/| |/\|/\| D--E--F |\/|\/| |/\|/\| G--H--I 入力として、ノードのラベルを表す整数の長さ9のリストが与えられます。たとえば、入力[0,1,1,2,1,0,5,5,1]は次のラベルを表します。 0--1--1 |\/|\/| |/\|/\| 2--1--0 |\/|\/| |/\|/\| 5--5--1 出力は、接続されたノードのセットを形成する入力内の整数のセットです。より明示的にはn、ラベル付きのノードのセットnが接続されている場合にのみ、出力に入力からの整数が含まれる必要があります。この例では[1,2,5]、2つ0のが接続されていないため、許容可能な出力はになります。最も低いバイト数が優先されます。 詳細なルール 入力リスト内のノードの固定順序を選択でき、これを回答で述べる必要があります。EFBDHCAGIの順序では、上記のラベルはとして与えられ[1,0,1,2,5,1,0,5,1]ます。 完全なプログラムまたは関数を記述できます。後者の場合、言語がサポートしている場合、出力は整数のセットになる可能性があります。 出力リストには重複が含まれる場合がありますが、その長さは9を超えてはなりません。 標準の抜け穴は許可されていません。 テストケース これらには、グリッドに合わせて1桁の数字があります。それらを選択した順序に調整します。 011 210 => 1 2 5 551 010 202 => 0 2 221 110 123 => 0 2 3 221 111 111 => 1 111 …

2
パスを再ルーティングする
方向のグリッドと開始位置と終了位置を指定して、2点間のパスを完了するために必要な方向グリッドの置換の最小数を決定します。グリッドは二重円筒形です。これは、例を挙げればより明確になります。 例 例として次のグリッドを見てみましょう: >>>>v >>>>< <<<<< (座標がまたはで、最初の行と左の列がである)(1, 1)で開始して終了します。次に、1つの可能な解決策は、とをに置き換えることです。これにより、最終的なグリッドは次のようになります。(1, 3)(x, y)(col, row)1(1, 1)(1, 2)v v>>>v v>>>< <<<<< から始まり(1, 1)、パスはにつながり(1, 3)ます。しかし、短いソリューションを交換することである、存在する(5, 2)とv、最終的なグリッドはこれです: >>>>v >>>>v <<<<< から始めて(1, 1)、かなり長いパスがにつながり(1, 3)ます。 一番上の行の何かを^作品でも置き換えます(@Spitemasterに感謝します)。 入力 入力は、4つの可能な値の長方形グリッドと2つの座標で構成されます。グリッドは適切な形式で使用できます。たとえば、文字または整数の行列、文字列リストなど。グリッドの次元を要求することもできます。座標は適切な形式で取得できます。たとえば、整数ペア、複素数などです。0または1のインデックスを選択できます。 出力 出力は単一の整数であり、パスを最初から最後まで閉じるのに必要なグリッド置換の最小数である必要があります。 ルールと仕様 標準抜け穴が適用されます グリッドは二重円筒形です。つまり、上から上に移動すると下に移動し、左から左に移動すると右に移動します。 サンプルケース サンプルケースは、文字行列と1インデックスの座標として与えられます。 事例1 入力 >>>>v >>>>< <<<<< 1 1 1 3 出力 1 説明 例を参照してください。 事例2 …

1
パーティションと再構築
同じ領域の2つの隣接する形状が与えられた場合、最初の形状を最小数の隣接するセグメントに分割して、それらを再配置して2番目の形状を形成できるようにする最適な方法を決定します。つまり、両方の形状を形成できる、必要な最小数のセグメントを見つけます。 「隣接」とは、形状を構成するすべての正方形が、他の正方形から端を横切ることで到達できることを意味します。形状とセグメントに穴を開けることができます。 「再配置」とは、セグメントを移動することを意味します。それらを平行移動、回転、反映することができます。 形状はグリッドに含まれています。つまり、各形状は、コーナー/エッジで結合された単位正方形のコレクションで構成されます。 入力仕様 入力は、いくつかの合理的な形式で提供されます-ポイントのリスト、各グリッドを表す文字列の配列など。要求された場合は、グリッドのサイズを取得することもできます。グリッドの寸法は同じになり、2つの形状は同じ面積になることが保証され、面積は正になります。 出力仕様 出力は単一の正の整数でなければなりません。最悪の場合のシナリオでは、形状をN単位正方形に分割するだけなので、常に肯定的な回答が得られることに注意してください。 例 例は.、空白を#表し、形状の一部を表すグリッドとして表示されます。 事例1 入力 ..... .###. .#.#. .###. ..... ###.. ..#.. ..#.. ..### ..... 出力 2 説明 4つのL字型ブロックに分割できます。 # ### 事例2 入力 #... ##.. .#.. .##. .##. #### .... .... 出力 2 説明 次のように形状を分割できます: A... AA.. .A. .BB. .AA. BBAA .... .... …

1
閉じたポリゴンを数える
入力: NxMのみ印刷可能なASCII(Unicodeの範囲を含むグリッドまたは複数行の文字列(またはその他の妥当入力フォーマット)[32,126])。 出力: 2つの特別なルールを使用して、検索できる同じ文字の閉じたポリゴンの数: スペースはワイルドカードであり、任意の文字に(複数回)使用できます o、O、および0閉じた多角形そのものとしてカウントされ チャレンジルール: 同じ文字(またはスペース)間の(対)対角線接続が閉じたポリゴンを形成するために含まれています。 他の文字(ワイルドカードスペースを除く)を超えることはできません。(つまり、以下の最初のテストケース/例では、次の2つの三角形を形成することができないA上行くことによってさんをx斜めに閉じた多角形のために使用されるすべての文字が(水平方向、垂直方向に接続する必要がありますので。)、および/または(反) )。 ポリゴンは、(単一文字を除く少なくとも3つの文字ですo、O、0)。 隣接する文字の線は閉じた多角形ではありません。 ワイルドカードスペースを除き、同じ文字を複数のポリゴンに使用することはできません。 ワイルドカードスペースはとしてカウントすることができないo、Oまたは0。 3つ以上のスペースだけでは、閉じたポリゴンを形成できません。常に少なくとも1つの非スペース(およびo/ O/ 以外0)文字が必要です。 入力は適切な形式にすることができます。文字マトリックス、改行区切り文字列、文字列配列、整数幅を追加した文字配列などを使用できます。 入力は常にN x Mの長方形(または正方形)になるため、奇妙な入力形状はありません 同じ文字を複数回使用することはできず、閉じたポリゴンをできるだけ多くしたいので、1つの大きなポリゴンの代わりに複数の文字を使用して2つ(またはそれ以上)の閉じたポリゴンを形成することは、当然のことながらカウントの目的です(これもなぜ、閉じた多角形が形成されることでo、Oまたは0それらは、すでに個別のポリゴンを閉じているので)、カウントされません。 もちろん、大文字と小文字は個別の文字として数えられます。 一般的なルール: これはcode-golfなので、バイト単位の最短の回答が優先されます。 コードゴルフ言語が非コードゴルフ言語で回答を投稿することを思いとどまらせないでください。「あらゆる」プログラミング言語について、可能な限り短い答えを考え出すようにしてください。 デフォルトのI / Oルールを使用した回答には標準のルールが適用されるため、STDIN / STDOUT、関数/メソッドを適切なパラメーターで使用し、戻り値の型の完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテスト(TIOなど)のリンクを追加してください。 また、回答の説明を追加することを強くお勧めします。 例/テストケース: 入力: AAAw AxA4 'AoQ 出力:2これらのポリゴンは形成できるため、 入力: 1822uaslkoo 12*2sl ljoo a* 0a91)j$* ()*#J9dddj* *Q#ID dJj!" *UJD …

7
最長降下の長さ
あなたの仕事は、整数の高さのグリッドとして表される「山」を下りる最長の降下の長さを決定することです。「降下」とは、開始セルから、厳密に減少する高さ(つまり、対角線ではなく、同じ高さではない)の直交する隣接セルへのパスです。たとえば、5-4-3-1からは移動できますが、5-5-4-3-3-2-1からは移動できません。このパスの長さは、開始セルから終了セルまでのセルの移動回数です。したがって、5-4-3-1は長さ3です。 入力として長方形のグリッドを受け取り、最長降下を示す整数を出力する必要があります。 例 1 2 3 2 2 3 4 5 5 5 3 4 6 7 4 3 3 5 6 2 1 1 2 3 1 この山を下りる最長の下りの長さは5です。最長の経路は7から始まり、左、上、左、上、そして左に移動します(7-6-5-4-2-1)。このパスには5つの動きがあるため、パスの長さは5です。 彼らはすべて同じ数かもしれません。 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 …
8 code-golf  grid 

3
整数のペアと正の整数の間の1対1の対応
整数のペアと正の整数の間に1対1の対応があることはよく知られています。あなたのタスクは、選択したプログラミング言語で(互いに逆の関数/プログラムのペアを定義することによって)そのような対応を定義するコードを記述し、対応のバイト数が最小の正当性チェック(下記を参照)を行うことです。定義(正当性チェックを考慮しない)。 ソリューションには以下を含める必要があります。 2つの整数引数を持ち、整数を返す関数/プログラムfの定義(全単射の1方向です)。 1つの整数引数を持ち、整数のペア(配列、リスト、何かで区切られた2つの整数の連結など)を返す関数/プログラムgの定義、または2つの関数/プログラムaおよびbのいずれか整数の引数と整数を返します(それが反対方向です)。 上記で定義したfとg(またはfとa、b)について、g(f(x、y))=(x、y)(またはa(f(x、y) )= xおよびb(f(x、y))= y)整数<x、y>の場合、-100 <x <100、-100 <y <100。fおよびgは、外部の値に対して機能する必要があることに注意してください。この範囲の。 もちろん、a、b、f、gの名前を変更できます。2つのソリューションを同じ言語で記述する必要はありません。 以下は、PARI / GPでの最適ではないソリューションで、関数定義に597文字を使用しています。 plane_to_line(x,y)={ my(ax,ay,z); ax=abs(x); ay=abs(y); if((ax<=ay)*(y<0), z=4*y*y-2*y+x+2;); if((ax<=ay)*(y>=0), z=4*y*y-2*y-x+2;); if((ay<=ax)*(x<0), z=4*x*x -y+2;); if((ay<=ax)*(x>=0)*(y<0), z=4*x*x+4*x+y+2;); if((ay<=ax)*(x>=0)*(y>=0),z=4*x*x-4*x+y+2;); if((x==0)*(y==0),z=1;); return(z); } line_to_plane(z)={ my(l,d,x,y); l=floor((1+sqrt(z-1))/2); d=z-(4*l*l-4*l+2); if(d<=l,x=l;y=d;); if((l<d)*(d<=3*l),x=2*l-d;y=l;); if((3*l<d)*(d<=5*l),x=(-l);y=4*l-d;); if((5*l<d)*(d<=7*l),x=d-6*l;y=(-l);); if((7*l<d)*(d<8*l) ,x=l;y=d-8*l;); if(z==1,x=0;y=0;); return([x,y]); } と正当性チェックコード: accu=List([]) m=100; for(x=-m,m,for(y=-m,m,if(line_to_plane(plane_to_line(x,y))!=[x,y],\ …

2
長方形の交点を数える
チャレンジ 任意の量の長方形を指定して、2D平面に描画されたときの長方形の交差の合計数を出力します。 ここでの交点Pは、互いに直交し、どちらもで終わっていない2本の線が交差する点として定義されPます。 例 ここでの各長方形は、最初に左上隅の座標、次に右下隅の座標を持つ2タプルで表されます。 [(-8,6)、(-4、-2)] [(-4,9)、(4,3)] [(2,10)、(14,4)] [(1,7)、(10、-6)] [(7,4)、(10,2)] [(5,2)、(9、-4)] [(-6、-4)、(-2、-6)] これらの長方形は、6つの交差点を作成します。これが出力でなければなりません。 上の画像からわかるように、長方形にタッチしても、ここでは交差が作成されず、カウントされません。 再タグ付けは、任意の形式でエンコードできます。使用する形式を明確にしてください。 複数の長方形が同じ点で交差する場合、それは1つの交差としてのみカウントされます。 座標は常に整数です。 入力に重複する長方形はありません。 入力として常に少なくとも1つの長方形を取得します。 この問題を直接解決するビルトインは使用できません。さらに、方程式を解くビルトインは使用できません。他のすべての組み込みは許可されます。 出力は、交差数を示す単一の整数でなければなりません。 ルール 機能または完全なプログラムが許可されています。 入力/出力のデフォルトのルール。 標準の抜け穴が適用されます。 これはcode-golfなので、最小のバイト数が優先されます。タイブレーカーは以前の提出です。 テストケース 上記の例と同じフォーマット。長方形はリストにラップされます。 [[(-8,6)、(-4、-2)]、[(-4,9)、(4,3)]、[(2,10)、(14,4)]、[(1 、7)、(10、-6)]、[(7,4)、(10,2)]、[(5,2)、(9、-4)]、[(-6、-4)、 (-2、-6)]]-> 6 [[(-2,2)、(6、-4)]]-> 0 [[(-12,10)、(-8,6)]、[(-14,6)、(-10,2)]、[(-10,6)、(-6,2)]]- > 0 [[(-4,10)、(6,2)]、[(-2,8)、(4,3)]、[(1,6)、(8,4)]、[(2,11 )、(5,5)]]-> 10 [[(8,2)、(12、-2)]、[(10,0)、(14、-4)]]-> 2 [[(0,2)、(2,0)]、[(0,1)、(3,0)]]-> 1 [[(-10、-2)、(-6、-6)]、[(-6、-2)、(-2、-6)]、[(-8、-4)、(-4、 -8)]]-> 3 ハッピーコーディング!

2
グリッド上の単語を見つけよう!
開始座標と終了座標を使用してワードサーチから単語を抽出するプログラムまたは関数を記述します。 入力 プログラムまたは関数は、開始座標、終了座標、および単語を抽出するワード検索の 3つのパラメーターを受け入れる必要があります。 開始座標は、任意の形式で取り込むことができます。 常に整数になります グリッドの左下は(0、0)です グリッドの境界の外にある座標は提供されません (7、0)や(0、6)など、互いに垂直、水平、または完全に対角ではない座標は提供されません。 端座標と同じ形式で撮影される開始座標 ワードサーチが可能になる、文字列、またはあなたの言語の最も近い同等 これは、各行が改行で1 つのスペースで区切られた文字のグリッドになります。高さや幅は任意ですが、異なる場合もありますが、常に長方形になります。例えば: A G O A T C A T E A T M E N O W W O R D S E A R A K L L K J H G N P L F G …

5
磁気彫刻…宇宙で!
バックグラウンド これは、私の以前の課題の続きです。その課題は、磁石を巨大な山に落として得られた彫刻の形状を計算することでした。 朗報です。エキセントリックなアーティストはあなたの作品が好きで、あなたのために別のプロジェクトを持っています。彼はまだ磁気彫刻を使用していますが、アートスタジオを宇宙に拡張することにしました。彼の現在の方法は、単一の立方体の磁石を軌道に爆破し、他の磁石を発射して巨大な磁気衛星を作成することです。 入力 入力は、0sと1sの有限リストであり、言語のネイティブリスト形式または文字列のいずれかで指定されます。作品の「青写真」として解釈され、左から右へと次のように処理されます。 2D平面の整数座標に浮かぶ単一の磁石から始め、指示に従って磁石を追加し続けます。ディレクティブ0は、彫刻全体を反時計回りに90度回転させます。ディレクティブの場合1、アーティストは彫刻の左端の列を見つけ、新しい磁石を下から発します。新しい磁石は、柱の一番下にある既存の磁石にくっついて、彫刻の一部になります。以前の課題とは異なり、磁石は隣接する列の他の磁石にくっつかないことに注意してください。その速度は今や天文学的です! 出力 アーティストは、完全な彫刻がガレージに収まるかどうかを知りたがっています(軌道から降ろす方法は不明のままです)。したがって、出力は彫刻の幅と高さであり、低いものから高いものへと並べられます。それらは、2要素のリスト、ペア、またはコンマで区切られた文字列として指定できます。 例 入力シーケンスを検討する [1,0,1,1,0,1,0,0,1,1] それを処理するには、空間に浮かぶ1つの磁石から始めます。 # 最初のディレクティブは1なので、下から新しい磁石を撃ちます: # # 次のディレクティブは0なので、彫刻を回転させます。 ## 次の2つのディレクティブは1,1です。つまり、2つの磁石を左端の列に向けて発射します。 ## # # 次に、再び回転させて、次のように1回撮影し0,1ます。 # ### # 最後に、2回回転して2回撃ちます。 # ### # # # 結果の彫刻には幅3と高さ4があるため、出力します[3,4]。 ルール 関数または完全なプログラムを与えることができます。最も低いバイト数が優先され、標準の抜け穴は許可されません。 テストケース [1,0,1] -> [2,2] [1,0,1,1,0,1,0,0,1,1] -> [3,4] [1,1,0,1,1,0,1,0,1,1] -> [4,5] [1,1,0,1,1,0,1,0,1,1,0] -> [4,5] [1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1] -> …
8 code-golf  grid 

6
4x4チャレンジ
Enumerate(Takuzuを基に作成)と呼ばれる脳ゲームが存在します。あなたの課題は、このゲームをプレイすることです。 仕事 4x4 Enumerate / Takuzuのゲームを解きます。 STDINまたはコマンドラインを介して開始グリッドを受け取ります。 STDOUTまたはファイルへの書き込みを介して解決済みグリッドを出力します。 ルール ゲームの特徴は、赤と紫のセルで構成される4x4のボードです。 各行と列に同じ数の赤と紫のセルが必要です(それぞれ2つの赤と2つの紫)。 同一の行または列があってはなりません。 入力 開始グリッドは16文字/バイトのみからなる文字列として与えられます0、1と2。次に例を示します。 0001100002001200 1赤色のセルと2紫色のセルを表します。すべての入力ボードは解決可能です。 注:言語が文字列リテラル入力をサポートしていない場合は、整数の配列として入力を受け取ることができます。これが事実であることを回答で述べてください。したがって、混乱はありません。これは、配列が次のようになるはずです。 [0, 0, 0, 1, 1, 0, 0, 0, 0, 2, 0, 0, 1, 2, 0, 0] ネストされた配列は許可されていません。 出力 解決されたボードは上記と同じ形式で出力されます。1およびのみで構成される16文字/バイトの文字列2。上記の入力に対する解決策は次のとおりです。 2121112222111212 ここでも、1赤色のセルと2紫色のセルを表します。 ボーナス -25バイトのボーナスは ASCIIグリッドとして解くボードを出力任意の答えのために提供されます。これは、前述のボードの例です。 2|1|2|1 -+-+-+- 1|1|2|2 -+-+-+- 2|2|1|1 -+-+-+- 1|2|1|2 ボーナスバイト-50はカラーで解決ボードを出力任意の答えのために提供されます。これは、画像または色付きのテキストとして出力できます。 色付きのテキストが選択されている場合、出力は次のようになります。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.