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

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

3
星条旗のコードチャレンジ
アメリカ合衆国の旗には、カントンに50の州を表す50の星が含まれています。 過去には、州の数が少なかったとき、もちろん星の数も少なく、それらの配置も異なっていました。たとえば、1912-1959年(ニューメキシコとアリゾナの入国後、アラスカの前)からは、6×8の長方形に48個の星がありました。 1867-1877年から使用された37星旗(ネブラスカ州の入場後、コロラド州の前)には、非対称の星の模様がありました。 将来51番目の州が追加される場合、ヘラルドリー陸軍研究所はすでに新しい旗の予備設計を開発しています。 しかし、星を配置するための一般的なアルゴリズムはないので、作ってみましょう! チャレンジ 所定の数の星が米国旗のカントン(青い部分)に配置されるように、それらの星を配置する最適な座標を出力するプログラムを作成します。 座標系は、カントン【で定義されていない 0≤x≤Wと0≤y≤Hと全体としてフラグ]。 この課題の目的のために、「最適な」配置は、カントン内のポイントと最も近い星の中心との間の平均(ユークリッド)距離を最小化するものとして定義されます。 この値を近似するための簡単な(最適でない場合があります)アルゴリズムは次のとおりです。 def mean_distance_to_nearest_star(stars, width, height, point_density=100): """ Approximate the mean distance between a point in the rectangle 0 < x < width and 0 < y < height, and the nearest point in stars. stars -- list of (x, y) …

25
正多角形を描く
このコードゴルフの目標は、辺の数と半径(中心から頂点までの距離)を指定して、通常のポリゴン(辺の長さが等しいポリゴン)を描くことです。 辺の数と半径は、ファイル、STDIN、または単なる古い変数を介して入力できます。あなたの言語で短いものを使用してください。 ASCIIアートの代わりに画像が実際に描画される場合、総文字数/バイトの-25%。

4
多角形が凸面かどうかを判別
入力ポリゴンが凸面かどうかを判断するプログラムを作成します。ポリゴンを含む一行で指定されたN、頂点の数を、次いでN含む行のxとyの各頂点の座標を。頂点は、任意の頂点から時計回りにリストされます。 例1 入力 4 0 0 0 1 1 1 1 0 出力 convex 例2 入力 4 0 0 2 1 1 0 2 -1 出力 concave 例3 入力 8 0 0 0 1 0 2 1 2 2 2 2 1 2 0 1 0 出力 convex xおよびyは整数、N <1000、および| …

7
解釈> <>(魚)
&gt; &lt;&gt;は人気のある言語ではありませんが、ゴルフに適している可能性があり、このWebサイトで使用されています。Befungeに触発され、その指示にいくつかの類似点があります。 必要なコマンド: &gt; &lt; ^ v 指示ポインターの方向を変更します(右、左、上、下) / \ | _ # ミラー。ポインターは、すでに持っている方向に応じて方向を変えます。 x ランダムな方向。 + - * , % それぞれ、加算、減算、乗算、除算、モジュロ。AとBをスタックからポップし、B演算子Aをプッシュします。0で除算するとエラーが発生します。 0-9 a-f 対応する値をスタックにプッシュします。a = 10、...、f = 15 = スタックからAとBをポップし、B = Aの場合は1をプッシュし、そうでない場合は0をプッシュします。 ) より大きい。AとBをスタックからポップし、B &lt;A ( より小さい場合は1をプッシュします。AとBをスタックからポップし、B&gt; Aの場合は1をプッシュし ' " ます。文字列解析を有効にします。文字列解析は、閉じ引用符が見つかるまで、見つかったすべての文字をスタックにプッシュします。 ! 次の命令をスキップします。 ? スタックのトップがゼロの場合、またはスタックが空の場合、次の命令をスキップします。(注:これはスタックから何もポップしません!)スタック : の一番上の値を複製します。 ~ スタックから一番上の値を削除します。 …

14
これは切り捨てられた三角形の数ですか?
関連するOEISシーケンス:A008867 切り捨てられた三角数 三角形の数の一般的なプロパティは、三角形に配置できることです。たとえば、21を取り、osの三角形に配置します。 o ああ おー おおおお ああ おっと 各角から同じサイズの三角形を切り取る「切り捨て」を定義しましょう。21を切り捨てる1つの方法は次のとおりです。 。 。。 おー おおおお 。おー。 。。oo。。 (の三角形は.オリジナルからカットされます)。 o残りは12 秒なので、12は切り捨てられた三角形の番号です。 仕事 あなたの仕事は、整数を取り、数値が切り捨てられた三角形の数であるかどうかを返す(または標準出力メソッドのいずれかを使用する)プログラムまたは関数(または同等のもの)を書くことです。 ルール 標準的な抜け穴はありません。 入力は負でない整数です。 カットの辺の長さは元の三角形の半分を超えることはできません(つまり、カットは重なり合うことができません) カットの辺の長さはゼロにすることができます。 テストケース 真実: 0 1 3 6 7 10 12 15 18 19 偽物: 2 4 5 8 9 11 13 14 16 17 20 …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

4
矩形差
この課題では、2つの重複する長方形が与えられ、一方を他方から削除して作成された長方形を計算する必要があります。 たとえば、黒い長方形から赤い長方形を削除する場合: 次の2つの長方形セットのいずれかになります。 また、以下を処理する必要があります。 より明確にするには: AとBの2つの長方形の座標を入力します。 Bを除くAのすべての領域をカバーする、重複しない最小の長方形を出力する必要があります。可能なカバーは許可されています 直交座標は4つの整数として渡されます。2つのペア(2つのコーナーポイントを表す)で、または4つの整数のタプル/リストとして渡すことができます。入力と出力は一貫している必要があります。 AとBは必ずしも重複または接触するわけではなく、それぞれ少なくとも1 テストケース: [(0 0) (5 5)] [(3 4) (8 7)] -&gt; [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)] [(2 4) (10 11)] [(5 5) (6 6)] -&gt; [(2 4) (10 5)] …

4
四辺形を分類する| 数学の試験で私を助けてください!
助けて!私の数学の試験はすぐに来て、私は勉強しませんでした!1試験の一部は、頂点座標を指定して四角形を分類することです。残念ながら、その方法はわかりません。2 だから、あなたの挑戦は私のためにこれを行うプログラムを書くことです。そうすれば私は失敗しません! チャレンジ 3つの頂点が同一直線上にない4つの頂点が与えられた場合、それらの4つの頂点によって形成される四辺形の最も具体的な分類を決定します。 「最も具体的な分類」とは、すべての正方形が長方形であっても、形状が正方形である場合、長方形であることを示すのではなく、正方形であることを示す必要があるということです。 入力 入力は4つの(x、y)座標として与えられます。これらは、長さ2のリスト/タプルの長さ4のリストとして取得できます。また、入力をx座標のリストおよびそれぞれのy座標のリストとして取得することもできます。 私の形状がポイントで頂点を持っている場合たとえば、(0, 0)、(5, 0)、(6, 1)、そして(1, 1)、あなたは以下の形式または類似のもののいずれかの入力を取ることを選択することがあります。 [(0, 0), (5, 0), (6, 1), (1, 1)] ([0, 5, 6, 1], [0, 0, 1, 1]) 四辺形は自己交差しておらず、ポイントは正しい順序で与えられていると想定できます(つまり、入力内の連続する2つのポイントは、四辺形の線分で接続されます)。 出力 次の四辺形のクラスごとに一意の出力が必要になります。 平方 矩形 ひし形 平行四辺形 台形/台形 カイト 四辺形 これは、正確な名前そのもの、文字、整数などです。 ルール 標準的な抜け穴が適用されます プログラミング言語にこの正確なタスクを実行するビルトインがある場合、そのビルトインは許可されません。 2点間の距離を見つけるためのビルトインが許可されています。 2本の線の間の角度を見つけるためのビルトインが許可されています。 この時点で、すべての用語を知っていれば、プログラミングを開始できます。(テストケースは最後にあります) 用語 このセクションは、さまざまな形状の定義を明確にする必要がある人を対象としています。 平方 四辺形は、その4辺すべての長さが等しく、隣接する辺のすべてのペアが垂直である(つまり、長方形と菱形の両方である)場合にのみ、正方形です。 矩形 …

7
六角形の三角形!
あなたの仕事:辺の長さの六角形の三角形を作成します。nここnで、正の整数または0です。 最初に、六角形を定義させてください: / \ | | \ / (素晴らしいASCIIアートですよね?) 六角形は、側面を共有することで互いにリンクできます。 / \ / \ | | | \ / \ / / \ | | / \ / | | \ / 六角形の三角形は次のとおりです。 / \ | | / \ / \ | | | \ / \ / その六角形の三角形の辺の長さは2であり、1つの辺を作るには2つの六角形が必要です。辺の長さが1の六角形の三角形は単一の六角形であり、辺の長さが0の六角形は空です。 より正式には、六角形の三角形は、六角形が側面でリンクされた三角形です。上部の六角形は、下部の2つの側面でその下の2つにリンクしています。左下の三角形はその右および右上の三角形にリンクし、右下の三角形はその左および左上の三角形にリンクします。角の間に六角形があり、反対側で接続されており、その数はn-2です。三角形は塗りつぶされていません。 …

14
三角形にもっとノードが必要
ノードが重心座標を使用してラベル付けされている標準の正三角形を考えてみましょう。 この3つのノードの三角形を6つのノードの三角形に変えるには、3つの頂点の新しい線(元の3つのノードの三角形の側面にあるものよりも多く)を追加し、内部エッジ(内部ノードではなく)を削除し、座標を正規化する: (再び、一つ以上のオリジナル6ノード三角形の側に存在していた)、4つの頂点の行を追加し、10ノードの三角形に6ノード三角形から行くためのプロセスを繰り返すこと、任意の内部エッジ(ただし、削除しない内部ノードを)座標を再正規化します: このプロセスは無期限に繰り返すことができます。このチャレンジの目標には、Nこのプロセスが実行された回数を表す整数が与えられ、重心座標で関連する三角形のすべてのノードが出力されます。 入力 プログラム/関数は、Nこのプロセスが適用された回数を表す単一の負でない整数を入力として受け取る必要があります。N=0では、3つのノードを持つ元の三角形を出力する必要があることに注意してください。 入力は、任意のソース(関数パラメーター、stdioなど)から取得できます。 出力 プログラム/関数は、すべてのノードを正規化された重心座標で出力する必要があります。ノードの順序は関係ありません。数値は、分数(分数の削減は不要)または浮動小数点数として指定できます。「スケーリングされた」ベクトルを出力してノードを指定することもできます。たとえば、次の3つの出力はすべて同等であり、許可されます。 0.5,0.5,0 1/2,2/4,0 [1,1,0]/2 浮動小数点出力を使用する場合、出力は1%以内の精度である必要があります。出力は、必要なシンク(stdio、戻り値、戻りパラメーターなど)になります。重心座標はノードごとに2つの数値によってのみ一意に決定されますが、ノードごとに3つの数値すべてを出力する必要があることに注意してください。 例 サンプルケースの形式は次のとおりです。 N x0,y0,z0 x1,y1,z1 x2,y2,z2 ... ここで、最初の行は入力Nであり、後続のすべての行x,y,zは、出力に1回だけ存在するノードを形成します。すべての数値は、近似浮動小数点数として与えられます。 0 1,0,0 0,1,0 0,0,1 1 1,0,0 0,1,0 0,0,1 0.5,0,0.5 0.5,0.5,0 0,0.5,0.5 2 1,0,0 0,1,0 0,0,1 0.667,0,0.333 0.667,0.333,0 0.333,0,0.667 0.333,0.333,0.333 0.333,0.667,0 0,0.333,0.667 0,0.667,0.333 3 1,0,0 0.75,0,0.25 0.75,0.25,0 0.5,0,0.5 0.5,0.25,0.25 0.5,0.5,0 …

30
ASCII長方形を描く
2つの整数を配列の入力として指定し、最初の整数を幅として、2番目の整数を高さとして使用して、長方形を描きます。 または、言語でサポートされている場合、2つの整数を別々の入力として指定できます。 幅と高さが3未満になることはないと仮定し、常に指定されます。 出力例: [3、3] |-| | | |-| [5、8] |---| | | | | | | | | | | | | |---| [10、3] |--------| | | |--------| これはコードゴルフであるため、バイト数が最も少ない答えが優先されます。

3
四角いペグを四角い穴に入れる
ニューヨークタイムズのこのグラフィックのデザインには興味をそそられました。アメリカの各州は格子状の正方形で表されています。正方形を手動で配置したのか、実際には隣接する状態の位置を表すために(ある定義の下で)正方形の最適な配置を見つけたのか疑問に思いました。 コードは、状態(または他の任意の2次元形状)を表すために正方形を最適に配置するという課題の小さな部分を担います。具体的には、形状のすべての地理的中心または重心がすでにあると仮定します。便利な形式であり、このようなダイアグラムでのデータの最適な表現は、形状の重心からそれらを表す正方形の中心までの合計距離が最小であり、それぞれに最大で1つの正方形があること可能な位置。 コードは、任意の便利な形式で0.0〜100.0(両端を含む)の浮動小数点XおよびY座標の一意のペアのリストを取得し、データを表すために最適に配置されたグリッド内の単位正方形の非負整数座標を出力します、順序を保存します。複数の正方形の配置が最適な場合、最適な配置のいずれかを出力できます。1〜100組の座標が与えられます。 これはコードゴルフで、最短のコードが勝ちます。 例: 入力: [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)] これは簡単です。グリッドの正方形の中心は0.0、1.0、2.0などにあるため、これらの形状はすでにこのパターンの正方形の中心に完全に配置されています。 21 03 したがって、出力は正確にこれらの座標である必要がありますが、整数として、選択した形式で: [(0, 0), (1, 1), (0, 1), (1, 0)] 入力: [(2.0, 2.1), (2.0, 2.2), (2.1, 2.0), (2.0, 1.9), (1.9, 2.0)] この場合、すべての形状は(2、2)の正方形の中心に近くなりますが、2つの正方形を同じ位置に配置することはできないため、押し出す必要があります。図形の重心からそれを表す正方形の中心までの距離を最小化すると、次のパターンが得られます。 1 402 3 したがって、出力はになります[(2, 2), (2, 3), (3, 2), (2, 1), (1, …

2
最悪の場合のマンハッタンの除外
想像してWによるHのトロイダル状ラップの正方形のグリッドを。アイテムは次のようにグリッドに配置されます。 最初のアイテムは任意の正方形に配置できますが、後続のアイテムは前のアイテムのマンハッタン距離 R(範囲Rのフォンノイマン近傍とも呼ばれます)内に配置することはできません。慎重に位置を選択すると、有効な位置がなくなる前に多数のアイテムをグリッドに合わせることができます。ただし、代わりに反対の目的を検討してください。配置できるアイテムの最小数はいくらですか? 以下は、半径5の除外ゾーンです。 ここに別の半径5の除外ゾーンがあります。今回はエッジに近いため、ラッピングの動作が明らかです。 入力 3つの整数: W:グリッドの幅(正の整数) H:グリッドの高さ(正の整数) R:除外ゾーンの半径(非負の整数) 出力 整数N。これは、配置できるアイテムの最小数であり、それ以上の有効な配置を妨げます。 詳細 半径がゼロの場合、除外ゾーンは1平方(アイテムが配置されたゾーン)になります。 Nの半径は、N直交ステップで到達できるゾーンを除外します(エッジがトロイド状にラップすることを思い出してください)。 あなたのコードは、R = 0の些細なケースで機能する必要がありますが、W = 0またはH = 0で機能する必要はありません。 コードでは、R &gt; WまたはR &gt; Hの場合も処理する必要があります。 制限時間とテストケース コードはすべてのテストケースを処理できなければならず、各テストケースは5分以内に完了する必要があります。これは簡単なはずです(JavaScriptソリューションの例では、テストケースごとに数秒かかります)。時間制限は、主に極端なブルートフォースアプローチを除外することです。例のアプローチは、まだかなり強引です。 コードが1台のマシンで5分以内に完了しても、十分に近い別のマシンでは完了しない場合。 フォーム入力のテストケース:出力としてW H R : N 5 4 4 : 1 5 4 3 : 2 5 4 2 : 2 …

3
遮られていない長方形を削除する
この画像は、7つの異なる色の長方形を重ねて作成したものです。 黒と栗色の長方形は遮られていません。つまり、他の長方形はそれらの上にありません。 このような画像を取り込むプログラムを作成し、遮られていない長方形を1つ削除して、結果の画像を出力します。 例 上記のイメージでプログラムを実行し、出力でプログラムを再実行し続けると、次のように進行する可能性があります。 実行1-黒を削除(あずき色だった可能性があります): 実行2-マルーンの削除(選択のみ): 実行3-黄色の削除(選択のみ): 実行4-青の削除(緑だった可能性があります): 実行5-緑の削除(選択のみ): 実行6-ブラウンの削除(選択のみ): 実行7-赤の削除(選択のみ): 追加の実行で同じ白い画像が生成されます。 Stack Exchangeがこれらの画像を損失なく圧縮しないことを願っています。 画像の背景は常に白になり、各長方形は白ではない一意のRGBカラーになります。 画像は常に重複する長方形のセットとして解釈できると想定できます。具体的には、特定の色について、その色が画像の上部に最も近いピクセルがその色の長方形の上端の一部であると想定できます。同じことが下、左、右のエッジにも当てはまります。 たとえば、この画像では、オレンジ色の長方形が古い赤い上端を覆っているため、赤い長方形の上端は黄色の長方形の下端のすぐ下になります。 この画像では、最初に赤い長方形を削除することができます(黒/マルーン/オレンジ/グレーと共に): 下の長方形の順序があいまいな場合、任意の順序を付けることができます。 たとえば、ここの左の画像は中央または右になります。 出力には逆説的な重複があってはなりません(したがって、ペインターのアルゴリズムで作成することは可能です)。したがって、この画像(user23013に感謝)では、オレンジ色の長方形の下に緑色にする必要があります。 さらなる詳細 画像と長方形のサイズは任意です。 長方形は画像の境界線に接する場合があります。 最大256個の3-1の長方形がある場合があります。 入力が完全に白の場合、出力も同様になります。 画像ライブラリを使用できます。 入力は、画像ファイル名または生の画像データである必要があります。stdinまたはコマンドラインから取得できます。 出力は、同じ画像ファイルまたは別の画像ファイルに書き込むか、生のまま標準出力に出力するか、単に表示することができます。 一般的なロスレストゥルーカラー画像ファイル形式はすべて許可されます。 最少バイトの送信が勝ちです。

4
2Dポイントのセットの凸包を見つける
釘のセットを木製の板に打ち込み、輪ゴムを巻き付けると、凸包が得られます。 あなたの使命は、あなたがそれを受け入れることに決めたなら、2Dポイントの与えられたセットの凸包を見つけることです。 いくつかのルール: 関数として記述し、ポイントのリスト座標(任意の形式)が引数です 出力は、任意の位置から開始して、時計回りまたは反時計回りにリストされた凸包内のポイントのリストである必要があります 出力リストは、各ポイントの座標が明確に区別できる合理的な形式にすることができます。(たとえば、1次元のリストではありません{0.1、1.3、4、...}) 凸包のセグメント内の3つ以上のポイントが整列している場合、出力では2つの極値のみを保持する必要があります。 サンプルデータ: サンプル0 入力: {{1, 1}, {2, 2}, {3, 3}, {1, 3}} 出力: {{3, 3}, {1, 3}, {1, 1}} (図は単なる例示です) サンプル1 入力: {{4.4, 14}, {6.7, 15.25}, {6.9, 12.8}, {2.1, 11.1}, {9.5, 14.9}, {13.2, 11.9}, {10.3, 12.3}, {6.8, 9.5}, {3.3, 7.7}, {0.6, 5.1}, {5.3, 2.4}, …

27
正多角形の面積を計算する
整数が与えられた場合、nここで3 &lt;= n &lt; 2^32、n1のapothemを持つ通常の-gonの面積を計算します。の式はn * tan(π / n)です。悪魔が何であるかを知らない人のために: 正多角形のアポテムは、中心からその辺の1つの中点までの線分です。 n-gon の領域を小数点以下8桁以上の浮動小数点として出力します。 テストケース 3 5.1961524227 6 3.4641016151 10 3.2491969623 20 3.1676888065 99 3.1426476062 1697 3.1415962425 15000 3.1415926995 注:上記のテストケースには、出力に必要な数字より2桁多く含まれています。

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