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

この課題は、形状やその他の幾何学的構造を使用、操作、または作成することで解決することを目的としています。

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 …

1
単位正方形のタイリング
バックグラウンド 用語を拡張およびキャンセルすることにより、次のアイデンティティを簡単に示すことができます。 ただし、すべての1 / n×1 /(n + 1)の四角形が単位正方形をタイリングできるかどうかは、未解決の問題です。 タスク プログラムは、任意の便利な方法で正の整数Nを入力として受け取り、1からNまでのすべての1 / n x 1 /(n + 1)の開いた長方形を1からNまでの単位正方形にパックします。 。 長方形ごとに、次の整数を順番に生成する必要があります。 水平エッジが垂直エッジよりも長い場合は1、それ以外の場合は0 左下隅のx座標の分子と分母 左下隅のy座標の分子と分母 単位の正方形をとし(0, 1) x (0, 1)、x値は左から右に、y値は下から上にあることに注意してください。 最終的に予期される出力は、任意の便利な形式(たとえば、stdoutに出力されるか、関数から返されるリストとして)で、各長方形のこれらの整数をnの昇順で連結したものです。 入力と出力の例 入力: 3 出力: 0 0 1 0 1 1 1 2 0 1 1 1 2 1 3 これは次のように解析されます。 0 (0/1, …

2
長方形が長方形のスペースを隙間や重なりなしに埋めているかどうかを確認します
この課題は、別の同様の課題に基づいています。長方形の最も効率的なパッキングを見つけることはNP困難であるため(つまり、その解決策は簡単に確認できるが見つけにくい)、この課題はここでの課題よりもはるかに簡単です。 この挑戦 長方形の束が与えられた場合、それらが長方形のスペースをギャップやオーバーラップなしで埋めるかどうかを把握します。 入力 入力には2つの形式があり、1つはスコアリングペナルティを伴います。 1つ目は、長さが4のサブリストのリストです。このリストには、反対の頂点の座標である4つの整数が含まれています。すべての長方形は水平/垂直になるため、長方形がどこにあるかについてのあいまいさはありません。各サブリストには、最初の頂点のx座標、最初の頂点のy座標、2番目の頂点のx座標、2番目の頂点のy座標の順に、4つの整数が含まれます。 2番目:同じ長さの整数の4つのリストが含まれます。4つのリストは異なる座標を表します。入力オプション1を行列と考えると、ここでの入力は行列の転置にすぎません。この入力には、+20%バイトのペナルティがあります。 出力 単純な真実/偽の出力。 仕様書 エリア0(つまりx1 == x2 || y1 == y2)の長方形がある場合は、この長方形を無視してください(そのため[0 0 1 1], [2 2 3 2]有効です)。この仕様は、人々が最小/最大x / y値を簡単に取得することを困難にするために用意されています。 x1 <= x2y1 <= y2常に正しいとは限りません。の場合x1 > x2 || y1 > y2、長方形は面積ゼロの長方形ではありません。むしろ、それは間の長方形の空間を占有(x1, y1)して(x2, y2)。 座標は負の値でもかまいませんが、その場合でも座標間のスペースを占めます。 左上の長方形は常にとは限りません(0, 0)。したがって、塗りつぶされる長方形のスペースの左上隅がであるとは限りません(0, 0)。 (これらのあいまいさを指摘してくれた@xnorに感謝) 入力方法と出力の表現方法を指定してください。 得点 スコアは、バイト単位のコードのサイズに、該当する場合はバイトのペナルティを加えたものです。12月15日の時点での最低スコアが勝利します。 テストケース 0 0 …

15
円の周りのn個の点を直線で結ぶことにより得られる領域の最大数
円の周りのn個の点を直線で結ぶことによって得られる軸の数の領域としてf(n)を定義しましょう。たとえば、次のように2つのポイントで円を2つに分割し、3つを4つに分割します。 線を描くときは、2つ以上の線の交点がないことを確認してください。 あなたのタスク 数値nを指定して、f(n)を出力します。 テストケース: n | f(n) ---+----- 1 | 1 2 | 2 3 | 4 4 | 8 5 | 16 6 | 31 7 | 57 8 | 99 9 | 163 あなたはここでもっと見ることができます。 組み込みシーケンスジェネレーターの使用は許可されていません。 これは コードゴルフなので、バイト数が最も少ないコードが優先されます。 数式が必要な場合は、次のとおりです。

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 ハッピーコーディング!

16
平らな地球を旅する
平地の世界の座標は、緯度(x)と経度(y)で構成されます。これらは0〜9999の範囲の整数です。ガウス整数によく似ていますが、常に次の表記法を使用して記述されています。 411S 370E すなわちであり、SまたはN緯度に付加し、EまたはW2つのコンポーネント間の空間(S)と、経度に付加します。 ゴール 空白で区切られた2つの座標を読み取り、それらの合計を出力するプログラム(関数ではない)を記述します。最初の座標は開始点、2番目の座標は変位、出力は結果の位置です。 入出力 この課題は部分的にフォーマットに関するものであるため、入力形式と出力形式を明確に定義するようにします。 推奨される入力形式では、座標コンポーネント間に1つのスペースがあり、先行ゼロはなく、2つの座標間に改行文字があります。プログラムは、優先フォーマットを読み取ることができる必要があります。 出力には、任意の量の空白と先行ゼロを含めることができます。推奨される入力形式と異なる場合、プログラムはこの形式も読み取ることができる必要があります。 明確にするために、入力には追加の書式設定文字を含めることはできません(含めません)。必要なスペースと改行だけ。 得点 これは新しい勝利条件の実験です。数週間以内に回答を受け入れて、勝者を選びます。その後、より適切な回答が出た場合は、回答を変更します。 プログラムのスコアはそのバイト数です。優勝したプログラムは、400バイトより短く、バイト数が最も少ないプログラムですが、最も冗長なプログラミング言語で書かれています。勝者を決定するには: バイト数が400以上のプログラムを削除します(参加できますが、勝つことはできません)。 各プログラミング言語の最短プログラムのみを検討する 最長のプログラムの勝利 ポリグロットは、有効なすべての言語のプログラムと競合します(たとえば、プログラムが両方bashで有効である場合、sh両方の言語のプログラムと競合します)。 テストケース テストケースでは、最初の2行が入力で、3行目が出力です。 0S 0E 0S 0W 0N 0E (ゼロの方向は、入力と出力の両方で重要ではありません) 0S 9999E 9999N 9999W 9999N 0E (最大値) 42S 314W 42N 2718W 0N 3032W (ゼロの方向は出力では関係ありません) 5555N 8888W 7777S 0E 2222S 8888W (負の値はありません。符号を変更する必要がある場合は方向を変更してください) 0001N 4545W …
8 code-challenge  arithmetic  parsing  code-golf  interpreter  code-golf  random  classification  code-golf  ascii-art  code-golf  code-golf  string  number  array-manipulation  code-golf  math  rational-numbers  code-golf  internet  classification  code-golf  string  integer  code-golf  number  graphical-output  typography  king-of-the-hill  code-golf  number  sequence  palindrome  code-golf  math  code-golf  math  probability-theory  code-challenge  image-processing  test-battery  code-golf  number-theory  code-golf  tips  swift  code-golf  graphical-output  image-processing  color  code-golf  string  conversion  code-golf  string  array-manipulation  code-golf  encryption  king-of-the-hill  code-golf  string  ascii-art  code-golf  code-golf  string  compression  decision-problem  code-golf  ascii-art  number-theory  division  code-golf  ascii-art  code-golf  code-golf  number  array-manipulation  code-golf  ascii-art  code-golf  code-golf  string  code-golf  sequence  number-theory  code-golf  math  geometry  code-golf  combinatorics  code-golf  integer  code-golf  arithmetic  number-theory  code-golf  arithmetic  restricted-source  number-theory  restricted-complexity 

1
ラインを伸ばす
仕事 線のある画像が与えられた場合、線を画像の端まで延長した線を含む画像を生成または表示します。線は黒で、背景は白です。画像サイズは、100x100画像を任意の合理的な形式で提供されます(例えばjpg、png、ppm、bmp)。 ラインフォーマット 私は、線の描画にBresenhamの線アルゴリズムの簡略化バージョンを使用しています。線は整数の勾配のみを持つため、線がピクセルを部分的に覆うことはなく、色を付けません。 (ウィキペディアの画像) 直線が直線でない限り、最低でも3x3になります。この場合、画像には3x1または1x3しか表示されません。ラインも画像の端に片側があるため、一方向に延長するだけで済みます。 例(.png、赤い線が追加されているので、見やすくなっています): 実際の例(.png) ==================== ==================== ==================== ====================

7
ヘキサゴンインまたはヘキサゴンアウト?
たとえば蜂の巣に見られる通常の六角形について語るには、すばらしい話があります。しかし、この忙しいミツバチは、ハニーポットの内側と外側のどちらのポイントであるかを彼に知らせるためにあなたの助けが必要です。したがって、下の図に示すように、原点を中心とし、エッジサイズがlの正六角形を指定して、座標セット(x、y)が正六角形の内側、端、または外側にあるかどうかを確認します。 入力、出力、ルール ルールは次のとおりです。 入出力メソッドはデフォルトのルールに従います。 入力は3で構成され、整数:x,y,l。 xそしてy、任意の好都合な符号付き整数フォーマットです。l正です(0にはなりません)。 プログラムは1、ポイント(x,y)が正六角形の内側にある場合、-1またはそれが外側または外側の場合、aを出力または返す必要があります。0場合、端に正確に。 これはコードゴルフなので、最短のコードが優先されます。同点の場合は、最も古い投稿が優先されます。 stdoutへの出力の場合:出力の先頭/末尾のスペースまたは改行が許可されます。 標準の抜け穴が適用されます。 テストケース ここにいくつかのテストケースがあります: 0,0,1 --> 1 0,1,1 --> -1 0,-1,1 --> -1 1,0,1 --> 0 -1,0,1 --> 0 -1,-1,1 --> -1 1,1,1 --> -1 -2,-3,4 --> 1 32,45,58 --> 1 99,97,155 --> -1 123,135,201 --> 1

21
長方形のリングにタイルを形成する
入力を受け取り、タイルから長方形のリングtilesXをtilesY作成するメソッドを作成します。 関数は、次のようにリング内のタイルを並べ替える必要があります。 tilesXそしてtilesY、常に正の整数値であり、することはできません0 tilesXそして、tilesY:常に等しくない、などの値が期待する2x5、6x3など 無効な入力を確認する必要はありません 2D配列、ASCIIアート、印刷されたテキストなど、どのような方法でもタイルを表示できます。 2つの整数である限り、入力が渡される厳密な方法はありません。 線にできません。長方形のサイズtilesXとtilesYピクセルの描画は無効です 最短のコードが勝ちます

1
長方形の円パッキング
あなたの仕事は、N個の円が持つことができる最大半径を見つけ、それでもX×Yピクセルの大きさの長方形の内側に収まるプログラムを書くことです。(このウィキペディアの記事と同様)プログラムは、これらのN円の最大可能半径と最適位置を見つけて 、 2つの円が重なることはありません すべての円が長方形の内側に収まります。 次に、プログラムはこれをコンソールに出力します。 Highest possible radius: <some_number> Circle 1 Focus: (x, y) Circle 2 Focus: (x, y) ... Circle N-1 Focus: (x, y) Circle N Focus: (x, y) (明らかに、some_numberをプログラムが計算する半径、Nは最終的に使用する円の数、xとyは円の実際の座標に置き換える必要があります) 最後に、これらの円が描かれた画像を作成して保存する必要があります。 ルール: このプログラムは、任意のサイズの長方形と任意の数の円で実行する必要がありますが、有効な答えを得ることができます。コマンドライン引数、ユーザー入力、ハードコードされた変数など、必要なものを使用できます。 円が重なっている場合や、ボックスの内側に完全に収まらない場合、提出は無効です。 各円の半径は同じでなければなりません。 これを合理的かつ実行可能にするために、すべての数値は小数点第2位まで正確でなければなりません。 これはコードゴルフなので、最短のプログラム(2014年10月28日現在)が優勝します。

5
ゴルフ:2D座標のリストにある単位長の正方形はいくつありますか?
2d(x、y)座標のリストを前提として、その座標を使用して形成できる単位正方形(エッジ長1単位)の数を決定します。 入力は、座標の0以上のペアの配列になります。例:JavaScriptの場合:numofsq([[0,0], [1,0], [1,1], [0,1]]) 入力に重複する座標はありません 入力順序はランダムになります(ランダムな2D座標)。 座標形式:[x座標、y座標](duh) 座標の順序:[0,0]、[1,0]、[1,1]、[0,1]および[0,0]、[0,1]、[1,1]、[1,0 ]同じ単位の正方形を表す(1回だけ数える) 座標は負または正の整数にすることができます(duh) 関数は、可能な単位平方の数、0以上を返します。 テストケース: Input Coordinates Pairs Expected Output [0,0], [0,1], [1,1], [1,0], [0,2], [1,2] 2 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1] 3 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], [2,2], [2,1], [2,0] 4 [0,0], [0,1], [1,1], [1,0], [0,2], [1,2], …

2
単純な幾何学的問題
この問題(下記を参照)は、高校プログラミングリーグのコードゴルフチャレンジとして与えられています。コンテスト中に提出された最短のコードは、Rubyで177バイト、Python 2.5で212バイト、Cで265バイトでした。だれでも短くできますか?他のプログラミング言語も許可されています。 問題の定式化:与えられた8つの整数:-1000 <x1、y1、x2、y2、x3、y3、x4、y4 <1000。 、(x1、y2)、(x2、y2)、(x2、y1)およびP2 =(x3、y3)、(x3、y4)、(x4、y4)、(x4、y3)。 * If the rectangles do not intersect print *nothing*. * If there is exactly one point in common print *point*. * If the intersections of P1 and P2 is a line segment print *line*. * If they have a rectangular area in common …

2
2Dブール配列を(直線)ポリゴンに変換
チャレンジ 2次元のブール配列(同等に、単色のビットマップ)を指定して、「真」(1)である領域の輪郭を表す一連のポリゴンを出力するプログラムを記述します。 入力は、'#'(ハッシュ)、' '(スペース)、および\n(改行)文字のシーケンスとして提供されます。行の長さが異なる場合があります。その場合、欠落している部分はスペースと見なされます。出力は、(改行で区切られた)ポリゴンのリストである必要があります。各ポリゴンは、(コンマで区切られた)座標のリストで表されます。 例と要件 座標は時計回りの順序でリストする必要があります。入力: # 許容できる出力は次のとおりです。 (0,0), (1,0), (1,1), (0,1) (1,0), (1,1), (0,1), (0,0) (1,1), (0,1), (0,0), (1,0) (0,1), (0,0), (1,0), (1,1) 互いに素な領域は複数のポリゴンを返す必要があります。入力: # # 出力例(実際の出力は2行で構成される必要があります): (0,0), (1,0), (1,1), (0,1) (2,0), (3,0), (3,1), (2,1) ポリゴンの穴は、別のポリゴンとして、反時計回りの順序でリストする必要があります。入力: ### # # ### 出力例: (0,0), (3,0), (3,3), (0,3) (1,1), (1,2), (2,2), (2,1) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.