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

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

12
このポリゴンの面積は?
多角形の面積を計算します。 この靴ひもアルゴリズムのビデオに触発されました。 仕事 あなたの仕事は、ポリゴンの面積を計算するプログラムまたは関数を作成することです。プログラムまたは関数は、メタのデフォルト定義に従って定義されます。 入力 ポリゴンの各頂点のXおよびY座標を受け取ります。入力は、タプルのリスト([[x1, y1], [x2, y2], etc])、マトリックス、またはフラットリスト([x1, y1, x2, y2, etc])として取得できます。それぞれを含む2つのリストxとy座標も許可されます。頂点には反時計回りの番号が付けられ、最初の頂点は指定された最後の頂点と同じであるため、ポリゴンを閉じます。 必要に応じて、最後の頂点なしで入力を取得できます(各座標を1回だけ受信します)。 ポリゴンのエッジが交差しないと仮定できます。すべての頂点に整数座標があると仮定することもできます。 出力 ポリゴンの面積。すべての標準出力方法が許可されています。ご使用の言語で浮動小数点除算が許可されておらず、解が整数でない場合、分数を返すことができます。分数を必ずしも単純化する必要はないため、返品2/4は許可されます。 受賞基準 最短のコードが勝ちます! テストケース [[4,4],[0,1],[-2,5],[-6,0],[-1,-4],[5,-2],[4,4]] 55 [[1,1],[0,1],[1,0],[1,1]] 0.5 1/2

2
タオルを折ります!
私はどこかで、技術ではまだできないことの一つに、折り畳み式タオルがあると聞きました1。そのため、このステートメントが偽であることを証明するのは今やあなたの仕事です! 入力として文字列を指定すると、次のように長方形(タオル)で構成され、各タオルを半分に2回折ります。例えば: +------+ +------+ +--+ | | | | | | | | | | | | | | -> +------+ -> +--+ | | | | | | +------+ タオルを折り畳むとき、最初に折り畳まれ、次に左から右に折り畳まれていることに注意してください。プログラムもこの動作を模倣する必要があります。また、テストケースでは、タオルは同じ場所にありますが、折りたたまれています。 ルール: 入出力の標準的な方法。 標準の抜け穴が適用されます。 入力と出力は文字列でなければなりません。 タオルが互いに対して適切な場所にある限り、出力では何でも問題ありません。 タオルの各辺の長さは常に2で割り切れると仮定できます。 入力として渡されるタオルは常に長方形になります。 タオルは常に分離されますが、可変量で分離される場合があります。 code-golfなので、最短のコードが勝ちます! テストケース: Input: +------+ | | | | | | | …

22
アルファベットピラミッドを構築する
今日は、文字からピラミッドを構築します!最初の5文字の文字ピラミッドの例を次に示します。 最初の5文字を​​、間にスペースを入れて、最初に昇順、次に降順で書きます。 A B C D E D C B A 上記の行の最初の4文字についても同じことを行いますが、先頭に2つのスペースを追加します。 A B C D C B A A B C D E D C B A 最後の行が「A」になるまで同じ手順を繰り返します A A B A A B C B A A B C D C B A A B C D E …

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 

3
円上のテキスト
可能な最小半径を持つ離散円の周りに入力文字列を印刷するプログラムまたは関数を作成します。たとえば、inputのThis is an example場合、プログラムは次を出力する必要があります。 a si n s i e h x T a m p le サークル生成 あなたは使用しなければならない中点円アルゴリズムを離散円の各点の座標を計算します。このウィキペディアのページで、このアルゴリズムを実装する方法の例を見つけることができます。 アルゴリズムの擬似コードは次のとおりです(WikipediaのCの例に基づいています)。 integer x = radius integer y = 0 int decisionCriterion = 1 - x while y <= x point at coordinates (x,y) belongs to the circle // Octant 1 point …

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 

15
ハイパーキューブ要素
N次元ハイパーキューブの各タイプの要素(頂点、エッジ、面など)の数を出力する関数またはプログラムを作成します。 例として、3次元キューブには1つのセル(つまり1つの3次元キューブ)、6つの面(つまり6つの2次元キューブ)、12のエッジ(つまり12の2次元キューブ)と8つの頂点(つまり8つの0次元キューブキューブ)。 Hypercube要素の詳細については、こちらをご覧ください。 あなたにも見てとることができ、次のOEISシーケンスを。 入力 コードは(STDINまたは関数パラメーターなどを介して)入力として、0以上の整数(ハイパーキューブの次元)を受け取ります。 コードは、メモリと時間の問題を無視して、理論的には0以上の入力に対して機能する必要があります(つまり、入力が大きい場合、速度と潜在的なスタックオーバーフローは答えの問題ではありません)。テストケースとして与えられた入力は12を超えません。 出力 「最高次元」要素から始めて、ハイパーキューブのすべての要素のリストを出力します。たとえば、キュ​​ーブ(入力= 3)の場合、リスト[1,6,12,8](1セル、6面、12エッジ、8頂点)を出力します。 出力のリストの形式は、リストのように見える限り比較的自由です。 結果をSTDOUTに出力するか、関数から返すことができます。 テストケース Input = 0 Output = [1] Input = 1 Output = [1,2] Input = 3 Output = [1,6,12,8] Input = 10 Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024] Input = 12 …

2
点のリストが与えられた正方形の回転を決定する
このチャレンジでは、ポイントのリストが与えられます。 これらの点は、想像上の正方形の境界線上にあります。あなたの目標は: 可能であれば、正方形の回転を印刷します。これは、[0、90)からの値になります。0は、垂直および水平の線の正方形を表します。回転は反時計回りにカウントされた度数で与えられます。 正方形の回転があいまいな場合(2ポイントしか与えられないなど)、「不明」を出力します ポイントが与えられた正方形を作成できない場合は、「Impossible」を印刷してください 与えられるポイントは一意であることが保証されており、順不同です。リストの入力には任意の形式を使用できますが、私の例では、ポイントはformat x,yであり、スペースで区切られます。数値は浮動小数点数であり、言語が処理できる範囲内にあると想定できます。出力は、少なくとも小数点以下3桁まで正確で、言語が完全な精度で浮動小数点数を処理することを前提としています。 以下にいくつかのテストケースを示します(簡単に視覚化するためにこれらのほとんどを整数で作成しましたが、プログラムは浮動小数点を処理する必要があります)。 未知の: 0,0 0,0 1,0 0,0 1,0 0,1 0,0 1,0 0,1 1,1 0,1 0,2 1,0 1,3 2,0 2,3 3,1 3,2 不可能: 0,0 1,0 2,0 3,1 4,2 0,0 1,0 2,0 1,1 0,1 0,2 1,0 1,3 2,0 2,3 3,1 3,2 2,2 2,0 0,1 2,2 0,3 …

15
デイ#4のランダムゴルフ:バートランドパラドックス
シリーズについて まず、これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。最初の投稿では、リーダーボードとシリーズに関する詳細情報を見つけることができます。 このシリーズにはたくさんのアイデアが並んでいますが、将来の課題はまだはっきりしていません。何か提案があれば、関連するサンドボックスの投稿でお知らせください。 穴4:バートランドパラドックス バートランドパラドックスが示す円内にランダムコードを選ぶための方法の異なる方法が和音、その中点とその長さの異なる分布をもたらすことができる興味深い問題です。 この課題では、「正しい」方法、つまりスケーリングと変換の下で不変なコードの分布を生成する方法を使用して、単位円のランダムなコードを生成することになっています。リンクされたウィキペディアの記事では、「方法2」はそのような方法です。 正確なルールは次のとおりです。 返される和音の数Nを指定する1つの正の整数を取る必要があります。出力はN、ラジアン単位の極角で指定された単位円上の2点としてそれぞれ指定されたコードのリストである必要があります。 コードは、2つの角度のそれぞれに対して少なくとも2 20の異なる値を返すことができるはずです。使用可能なRNGの範囲が狭い場合、最初に組み込みのRNGの上に十分に大きい範囲のRNGを構築するか、独自の適切なRNGを実装する必要があります。このページはそのために役立ちます。 和音の分布は、リンクされたウィキペディアの記事の「方法2」で作成されたものと見分けがつかない必要があります。別のアルゴリズムを実装してコードを選択する場合は、正確性の証明を含めてください。どのアルゴリズムを実装する場合でも、理論的には単位円で有効なコードを生成できる必要があります(基礎となるPRNGの制限または精度の制限されたデータ型を除く)。 実装では、浮動小数点数(少なくとも32ビット幅)または固定小数点数(少なくとも24ビット幅)を使用して返す必要があり、すべての算術演算は16 ulp以内で正確でなければなりません。 完全なプログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(出力)パラメーターを介して出力を生成できます。 出力は、個々の数字が明確に区別可能であり、それらの合計数が常に偶数である限り、任意の便利なリスト形式または文字列形式にすることができます。 これはコードゴルフであるため、最短の提出(バイト単位)が優先されます。そしてもちろん、ユーザーごとの最短投稿もシリーズの総合リーダーボードに入ります。 可視化 次のスニペットを使用して、生成された行をレンダリングし、それらの分布を検査できます。角度のペアのリストをテキスト領域に貼り付けるだけです。スニペットは、数値が単純な10進数(科学表記法ではない)である限り、ほぼすべてのリスト形式を処理できる必要があります。分布をよく理解するには、少なくとも1000行を使用することをお勧めします。また、以下の記事に記載されているさまざまな方法のサンプルデータも提供しました。 コードスニペットを表示 function draw() { document.getElementById("output").innerHTML = svg } function drawLines() { lines = document.getElementById("lines").value; var e = prefix; //e += '<circle cx="' + offset + '" + cy="' + offset + '" …

11
番号付きキューブに面を出力する
キューブの8つの頂点に0〜7の番号を自由に割り当てます。各頂点に正確に1つの番号を割り当てる必要があります。 たとえば、頂点は次のように割り当てられます。 3-----1 /| /| 4-----2 | | | | | | 5---|-0 |/ |/ 6-----7 0から5までの整数を取り込むプログラムを作成します。これらの6つの数値のそれぞれは、好きな方法でキューブの1つの面に正確に関連付けられます。これらの番号のいずれかが入力されると、関連付けられた面の4つの頂点番号が2×2の数字で標準出力に印刷されなければなりません。顔は立方体の外側から真っ直ぐに見えるようになっています。4つの顔の回転はすべて有効です。 たとえば、上の例の立方体の前面に0が関連付けられている場合、これはinputの有効な出力になります0。 42 67 顔は90度の回転で表示される可能性があるため、これらも有効です。 27 46 76 24 64 72 この出力(およびその回転)は、顔の間違った側から見られるため無効です。 24 76 同じ考えが他のすべての面に適用されます。たとえば、1が背面に関連付けられている場合、入力1は出力を生成する可能性があります13[newline]05(そして31[newline]50無効になります)。 したがって、実際の課題は、入力を4つの頂点番号に変換するのが簡単で短いように、頂点番号と回転を選択することです。 バイト単位の最短コードが優先されます。Tiebreakerは以前の投稿です。(便利なバイトカウンター。) ノート プログラムの代わりに関数を書くこともできます。0〜5の整数を取り、2×2桁のグリッド文字列を出力または返す必要があります。 stdin、コマンドライン、または関数argから入力を取得します。入力が有効であると想定できます。 出力には、オプションで末尾の改行が含まれる場合があります。 選択した頂点と面の番号を必ず教えてください。

13
シェルピンスキー層
はじめに、そのような下に線を追加することにより、パターンのようなシェルピンスキーの三角形/\を作成することができます... ゆるい枝/または\2つの枝に再び分割されます/\。 ブランチの衝突は、その\/下に何も(スペースはありません)死んでしまいます。 これらの規則を繰り返すと、 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHartによるインスピレーション) 正の整数Nを取り込んで、このパターンの最初のN行をstdoutに出力するプログラムまたは関数を作成します。必要以上に先行または後続のスペースはありません。 たとえば、入力が1出力の場合、 /\ 入力が2出力の場合 /\ /\/\ 入力が8出力の場合 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等々。 最小バイトのコードが優先されます。

2
2つの三角形の交差点
2D平面上の4点を与えA, B, C, D、三角形OABとの交差領域の面積を計算しますOCD。ここOで、は平面の中心であり、座標は(0, 0)です。 (算術演算に関して)一定の時間の複雑さで実行されるアルゴリズムは推奨されますが、強制されません。 ルール 各ポイントは2つの実数として表され、それらのXおよびY座標を示します。 オプションで、プログラミング言語(またはプログラミング言語のライブラリ)に組み込みPoint型または同等の型がある場合、Pointオブジェクトを入力として使用できます。 入力は、以下を含むがこれらに限定されない形式で、4ポイントとして与えられます。 8つの座標のリスト。 4点のリスト。各点は任意の便利な形式で表すことができます。 2点の2つのリスト。 等 ポイントの特定の順序(反時計回りまたは時計回り)を想定することはできません ポイントOが入力として渡されると想定することはできません。言い換えれば、プログラムは外部からの入力を受け取って使用してはなりません。 すべてのポイントが異なると仮定することはできません。言い換えれば、三角形が縮退している可能性があります。そのケースも処理する必要があります(以下のテストケースを参照) 絶対的または相対的な差は、以下のサンプルテストケースの差よりも小さくなければなりません。10-3 受賞基準 これはcode-golfで、バイト単位の最短回答が勝ちです! サンプルテストケース Ax Ay Bx By Cx Cy Dx Dy area 5 1 1 3 -1 0 0 -1 0 5 1 1 3 -1 0 0 0 0 5 1 …

9
この線はその正方形を通りますか?
以下に示すように、最初の象限(正のx軸、正のy軸、および原点を含む)を1x1グリッドに分割し、各グリッドに左下隅の座標でラベルを付けます。 各グリッドには境界と頂点が含まれていることに注意してください。数学記号を使用すると、(m、n)というラベルの付いたグリッドは正方形を表し{(x,y) | m ≤ x ≤ m+1, n ≤ y ≤ n+1}ます。 形で直線所定のax+by+c=0整数としa、b、およびc、と表されるグリッド(m,n)線は、グリッド、すなわち所与のグリッド内の任意の点がライン上にあるかどうかを通過するかどうかを出力。 a b c m n output 1 1 0 0 0 true 1 1 0 1 1 false 1 1 0 0 2 false 1 1 -3 0 1 true 1 1 -3 0 0 false …

8
この四辺形は周期的ですか?
数学では、周期的な四辺形は頂点がすべて同じ円上にあるものです。つまり、すべての頂点は他の3つの外接円上にあります。詳細については、MathWorldの記事を参照してください。 例 これらの四辺形は周期的です。 この台形は周期的ではありません。 (ウィキペディアの画像) 目的 凸四辺形を形成する反時計回りの順序で4つの頂点の座標が与えられたら、四辺形が周期的であるかどうかを判断します。 座標は整数になります(ただし、外心座標と外接半径は必ずしも整数ではないことに注意してください)。前の段落で暗示されているように、3つのポイントが同一直線上になく、2つが一致しません。 I / O 適切な形式を使用して入力できます。、特に[[x1,x2,x3,x4],[y1,y2,y3,y4]]、[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]複素数のすべての罰金です。 trueとfalseの異なる一貫した値を使用して出力します。 テストケース 正しい: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 偽: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

9
グリッドを三角形に分割する
ゴール この課題の目標は、次の機能を生成することです n、n X 1グリッドを三角形に分割する方法の数を計算する。三角形のすべての頂点がグリッドポイント上にあります。 例 たとえば、2 x 1グリッドを分割するには14の方法があるためf(2) = 14、次のパーティションを使用して して、それぞれ2、2、2、2、4、および2つの異なる方向に分割します。 得点 これはcode-golfなので、最短のコードが優先されます。

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