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

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

13
私の寸法は何ですか?
タスク:三角形の面積が与えられたら、その面積を持つヘロニアン三角形を見つけます。指定された面積を持つヘロニアン三角形はすべて許可されます。 ヘロニアン三角形は、整数の辺と整数の面積を持つ三角形です。ヘロンの公式により、辺の長さの三角形にa,b,cは面積があります sqrt(s*(s-a)*(s-b)*(s-c)) どこs=(a+b+c)/2三角形の半分周囲はあります。これは次のように書くこともできます sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)) / 4 そのような三角形が存在しない場合は、一貫したfalsey値で出力します。 入力:三角形の面積を表す単一の正の整数。 出力:このような三角形の3辺の長さ、または偽の値。 例: Input -> Output 6 -> 3 4 5 24 -> 4 15 13 114 -> 37 20 19 7 -> error 標準的な抜け穴が適用されます これはコードゴルフで、バイト単位の最短回答が勝ちです。

7
正方形を数える
チャレンジ 折り紙(折り紙)は芸術の創造的な形式です。私の知る限り、折り紙の達人は正方形の紙を好みます。最初から始めましょう-長方形の紙を正方形の紙に変換します。 したがって、紙は正方形に分割されます。現在の形状と1つの短いエッジを共有する最大の正方形を段階的に削除します(下の図を参照)。また、1ステップ後の残りの部分がより小さいか等しい場合0.001 * (area of the original paper)、用紙はそれ以上分割できません。最後に何も残っていない可能性があります。 あなたのタスクは、プロセス中に作成される正方形の数を計算することです。用紙を分割できない最後のステップの正方形は、出力にカウントされます。 例(1.350幅/高さの用紙)、出力は10です: 入出力 入力:長方形の紙の幅/高さの比、1桁の小数(またはドットのない整数)から1.002まで1.999、最小ステップ0.001。また、比率を説明する他の合理的な形式を使用することもできます。答えにそれを記載してください。 出力:平方カウント、1つの整数。 I / Oの例 コードはリスト入力をサポートしたり、マッピング関数である必要はありませんが、ページを整理するためにマッピング形式が使用されます。 1.002 => 251 1.003 => 223 1.004 => 189 1.005 => 161 1.006 => 140 1.007 => 124 1.008 => 111 1.009 => 100 すべての回答のリスト @LuisMendoのおかげで、ここに回答のグラフがあります。 備考 これはコードゴルフなので、最短のコードが勝ちます 標準的な抜け穴に注意する 入力と出力の処理方法を決めるのはあなたの自由ですが、標準の制限に従う必要があります。 ところで... 課題について不明な点がある場合はコメントしてください …

4
テッセレーションしましょう!
前書き ウィキペディアから: 平面のテッセレーションとは、タイルと呼ばれる1つ以上の幾何学的形状を使用した平面のタイル張りで、重なりや隙間はありません。 かなりよく知られているテッセレーションを以下に示します: 菱形は、重なりや隙間がないようにタイル状に並べられ、キューブの列の交換をシミュレートします。 仕事 あなたの仕事は、上記の画像と同じように菱形をテッセレーションするプログラムを書くことです。プログラムへの入力は、テッセレーションの次元になりますheight x width。ここで、幅は列の量で、高さは行の量です。 単一のキューブ1 x 1(3タイルの菱形)は、次のように正確に表されます。 _____ /\ \ / \ \ / \ _____\ \ / / \ / / \/_____ / したがって、入力/次元がの3 x 2場合、これは出力になります。 _____ /\ \ / \ \ / \ _____\ _____ \ / /\ \ \ / / \ …

15
g l f a t a n 2
時には、デカルト座標(x,y)を極座標に変換するのは本当に大変です(r,phi)。r = sqrt(x^2+y^2)非常に簡単に計算できますが、角度を計算する際にケースの区別が必要になることがよくあります。phiこれarcsinはarccos、arctanおよび他のすべての三角関数が、それぞれが円の半分のみに広がる共領域を持つためです。 多くの言語には、直交座標を極座標に変換するための組み込みatan2機能があります。または、少なくとも(x,y)角度を計算する関数がありますphi。 仕事 あなたのタスクは、2つ(浮動小数点、両方ではないゼロ)デカルト座標を取るプログラム/関数を記述することで(x,y)、対応する極角出力するphi、phiと(度、ラジアン、またはグレードでなければならないグレード Iは、平均グラジアン 1であります/ 400の完全な円)、あなたにとってより便利な方。 角度は正の方向で測定され、の角度はゼロです(1,0)。 詳細 あなたは、角度計算ビルトインを使用することはできませんphiを含む2点の座標、与えられたatan2、rect2polar、argOfComplexNumberおよび同様の機能を。ただし、通常の三角関数とその逆関数を使用できます。これらの関数は1つの引数のみを取ります。単位記号はオプションです。 半径はr非負でなければならない、とphiの範囲でなければなりません[-360°, 360°](それはあなたの出力かどうかは関係ありません270°か-90°)。 例 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

2
都市:視界
私は無限の2次元都市の位置(0、0)にいます。これは各格子点を中心とするブロックに完全に分割されており、その一部には建物が含まれています。特定のポイント(x、y)にある建物は、(x-.5、y-.5)および (x + .5、y + .5)に反対側の角を持つ正方形全体を占めます。建物は、(0、0)から他の建物と交差しない建物内のポイントまでの線分がある場合にのみ表示されます。 たとえば、私()は次の都市に@6つの建物(*)を見ることができます。 * * * *@ x** * y (-1、-1)xでマークされた建物は、隣接する2つによって遮られているため表示されません。または(1、-1)の建物の端で遮られているため、(3、-2)でマークされたもの。y 入力 複数行の文字列、または行のリスト。オプションで長方形にスペースを埋めます。以下のみが含まれます。 単一@(私の位置) スペース *、建物を表します。 常に少なくとも1つの建物があるため、少なくとも1つの目に見える建物があります。 出力 目に見える建物の数。 テストケース *@ 1 * ******* @ * 7 ***** **@** ***** 4 * ** @ ** 2 * * * * @ 4 @ * *** 1 …

12
オブジェクトの体積を計算する
特定の次元セットに基づいてオブジェクトの体積を決定できます。 球体の体積は、半径(r)という1つの数値を使用して決定できます。 円柱の体積は、半径(r)と高さ(h)の2つの数値を使用して決定できます。 ボックスの容積は、長さ(l)、幅(w)、高さ(h)の3つの数値を使用して決定できます。 不規則な三角ピラミッドの体積は、辺の長さ(a, b, c)と高さ(h)の4つの数値を使用して決定できます。 課題は、次の入力のいずれかを与えられたオブジェクトのボリュームを決定することです。 単一の番号(r)または(r, 0, 0, 0)=>V = 4/3*pi*r^3 2つの数字(r, h)または(r, h, 0, 0)=>V = pi*r^2*h 3つの数字(l, w, h)または(l, w, h, 0)=>V = l*w*h 4つの数字(a, b, c, h)=> V = (1/3)*A*h、ここでHeronの式でA与えられます:A = 1/4*sqrt((a+b+c)*(-a+b+c)*(a-b+c)*(a+b-c)) 規則と説明: 入力は整数と小数の両方にすることができます すべての入力ディメンションが正であると仮定できます Piがハードコーディングされている場合は、最大で正確でなければなりません3.14159。 より少ない桁で正確に表現できる数値を除き、出力には少なくとも6桁の有効数字が必要です。3/4として出力することができますが0.75、する4/3必要があります1.33333(より多くの数字はOK) 不正確な値を丸める方法はオプションです 無効な入力の動作は未定義です I / Oの標準ルール。入力は、リストまたは個別の引数にすることができます これはコードゴルフであるため、バイト単位の最短ソリューションが勝ちます。 テストケース: …

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

4
スノーフレークを描く
ジョーはバハマに住んでいます。冬です。彼の子供たちは雪がないことに失望しています。ジョーは子供のために雪を作る必要があります。幸いなことに、彼は3Dプリンターを持っています。彼はそれで雪片を作る予定です。残念ながら、彼は雪の結晶がどのように見えるかわかりません。実際、彼はスノーフレークを見たことがない!彼のために雪片の2Dイメージを自動的に生成するプログラムを作成して、彼を助けましょう。 入力 画像の直径(ピクセル単位)、実際には雪片である画像の割合。 出力 必要な直径のスノーフレークの画像。ファイルに保存するか、ユーザーに表示できます。 仕様書 30度の角度を持つくさびを作成します。ウェッジのポイントに初期シードを持つブラウン木を作成します。画像の残りの部分を生成するために、画像の中心の周りにウェッジを12回反射します。スノーフレークの色は白です。背景の色は黒です。 得点 ブラウンの木を生成する方法はさまざまであるため、スコアは10 *投票数-ゴルフスコアです。 ゴルフスコアは、プログラム内のバイト数として定義され、次のボーナスがあります。 -20%スノーフレークの対称性を任意に指定できます。 -50%スノーフレークの形状を指定できます。(ウェッジの辺の長さの比率を指定できることにより。) 最高スコアが勝ちます。 以下の図は、比率が約2の場合のウェッジの形状を示しています。 スコアボード: マーティン・バトナー:10 * 14-409 = -269 ニミ:10 * 1-733 * .5 = -356.5 オプティマイザー:10 * 5-648 = -598 勝者は-269のスコアを持つマーティンです!

4
三角戦艦(計算ジオメトリ問題)
あなたは戦艦の船長です。エンジニアリング部門は今年、デザインでコーナーを切っているので、あなたが乗っている船は単純な三角形の形をしています。 デッキに出て海風を楽しんでください...長くはありませんが。敵があなたを攻撃しました!—しかし、ショットはヒットしますか? 入力 このチャレンジのために、関数または完全なプログラムを作成できます。 プログラムは11個の整数を取り、そのうち10個がペアになります。 整数の最初の3つのペア(x 1、y 1)、(x 2、y 2)、(x 3、y 3)は、船舶の頂点を指定します。形成された三角形の面積はゼロではありません。 次の整数のペア(e x、e y)は、敵の大砲の位置を指定します。敵の大砲が船の上や船の境界内に横たわることはありません。* その後のペア(a x、a y)は、敵が狙った場所を指定します。これは(e x、e y)とは異なります。 最後の正の整数Rは、敵のショットの範囲を指定します *あなたはその出来事に気付かなかった場合、ひどいキャプテンになるでしょう! 出力 あなたは返す/印刷する必要がありますtruthy戦艦がヒットになる場合は、(1、真など)の値をそれ以外の場合はfalsy値(例えば、偽、0)。 ヒットとは何ですか? 敵のショットは、(a x、e y)から(a x、a y)の方向の長さRの直線セグメントです。この線分が三角戦艦の内部の一部と重なる場合、これはヒットとしてカウントされます。それ以外の場合、ヒットではありません。 三角形に沿って放牧するショット、または三角形の境界までしか到達しないショットは、ヒットとしてカウントされません。 例 0 0 0 1 1 0 1 1 0 0 2 ヒット:敵があなたの船の真ん中を撃ちました! 2 0 0 2 4 4 …

10
(x、y)に4方向に隣接するすべての有効なポイントの反復可能なオブジェクトを返す関数を作成します
一般的なアルゴリズムクラスとコンピューターサイエンスの非常に一般的な必要性は、グリッドまたはマトリックス(BFSまたはDFSなど)で4方向に反復することです。これは、多くの場合、ループ内で多くの算術演算と比較を行う、多くの不格好で冗長なコードをもたらすようです。これに対して多くの異なるアプローチを見てきましたが、これを行うためのより簡潔な方法があるという感覚を揺るがすことはできません。 課題はn, m、point (0,0)から始まる有限平面の幅と高さ、および(x,y)その平面内の任意の有効な点を表すことができる座標が与えられ、4方向の平面内のすべての点の反復可能なオブジェクトを返す純粋な関数を書くことですに隣接(x,y)。 目標は、できるだけ少ないバイトでその関数を定義することです。 有効な入力/出力を説明するのに役立つ例: n = 5 (y-axis), m = 3 (x-axis) (zero-based) matrix = [ [A, B, C], [D, E, F], [G, H, I], [J, K, L], [M, N, O], ] (x, y) => [valid iterable points] E: (1, 1) => [(1, 0), (2, 1), (1, 2), …

7
積み上げ桁階段
以下に説明するように、正の整数およびhを指定すると、テキストのw列およびh行が出力されます。wwwhhhwwwhhh 最初の行は11 0秒で始まり、2行目は10 1秒で始まり、3 行目は9 2秒で始まり、10行目は2秒で続き9ます。これらの最初の10行のそれぞれで、連続する数字の最初の実行に続いて、次に低い数字が2回現れ、次に2番目に小さい数字が2回現れ、このパターンが永久に繰り返されます。0sの実行が発生した場合、その後の数字は常に9sです。 10番目の行の下の行は、そのすぐ上の行と同じですが、1つ右にシフトします。表示される新しい数字は、それ自体の別のインスタンスの隣にない場合、前の左端の数字と同じです。それ以外の場合は、次に高い桁(9から0に戻る循環)です。 最初の要素は次のとおりです。11×1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 パターンをより明確にするために、色付きのテキストを使用した画像を次に示します。 より少ない列/行を作成する必要がある場合は、上記のテキストを切り抜く必要があります。 これより多くの列/行を作成する必要がある場合は、既存の階段を延長する必要があります。さらに列/行が連続する数字の新しい階段を追加する場合、数字は整数から周期的に選択される必要があります。したがって、入力のために出力がなければなりません(15,13)(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 555555443322110 666665544332211 777766554433221 888776655443322 998877665544332 099887766554433 009988776655443 100998877665544 このテキストの色付きの画像を次に示します。 ルール 便利な方法で出力できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 必要に応じて、行のリストを返すことができます。 必要に応じて、数字の2D配列または数字のリストのリストを返すことができます。 標準の抜け穴は許可されていません。 最短のコードが優先されます。 テストケース (w,h)(w,h)(w,h) 1,1 0 3,2 000 111 20,1 …

25
シンプルなパターン
入力: 選択した入力形式での2つの1桁(それらをm、と呼んでみましょうn)と2つの文字(aとと呼んでみましょうb)。 出力: チュートリアルでは、のふりをしm=2, n=5, a='a', b='b'ます。 出力は、4つの入力から作成された文字列になります。resultvalueでstringを呼び出しましょう""。まず、CONCATENATE aへのresult m回なので、CONCATENATE aへresult 2回。resultに等しくなりましたaa。第二に、CONCATENATE bへのresult m回なので、CONCATENATE bへresult 2回。resultに等しくなりましたaabb。最後に、resultがすでにより長い場合n、resultlengthを持つように切り捨てnます。それ以外の場合は、のm長さの実行aとが長さになるbまで交互に続けます。最後は、長さです。resultnresultaabba5 テストケース: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

1
CUBEを平らにします
3Dシェイプを見て、2つの多くの次元があると思いますか。それでは、3Dを1Dにしましょう!(私がそこで行ったことを参照してください?) 仕事 キューブの2D表現(下のレイアウト)を指定し、ポインターに基づいて単一の文字列にフラット化します。 キューブ これは、操作なし(,)とコーナーのポインター()で満たされたキューブのレイアウトです<>v^/。ナビゲーションポインター(NP)は、表示されている場所でプログラムを開始します。 | NP begins here, moving right. V >,,,,,,,,,,,,,,,,,,v , ,, , , , , , , , , , , , , , , , , , , , , , /,,,,,,,,,,,,,,,,,,/ / , , , , , , , , , , , , …

8
穴はいくつありますか?
チャレンジ 図形のグラフィカルな入力が与えられたら、その穴の数を決定します。 重複しない この質問は、カウントアイランドの重複としてマークされました。このチャレンジは、カウントアイランドチャレンジとは異なると考えています。なぜなら、このチャレンジでは、国境に接するブロックを排除する方法を理解する必要があるからです。 入力 入力は、複数行の文字列、文字列の配列、または文字配列の配列のいずれかの入力の2D形式として与えられます。これは形状を表します。形状は、エッジで接続された1つのピースのみであることが保証されています。入力方法を指定してください。 出力 出力は、形状にいくつの穴があるかを示す単一の整数です。末尾の改行は許可されますが、他の先頭または末尾の空白は許可されません。つまり、出力は正規表現と一致する必要があります^\d+\n?$。 穴とは何ですか? これらは単一の穴です。 #### # # # # #### #### # # # ## ### ##### # # # # # ##### これらは穴ではありません: ######## ######## # #### # #### # ###### # ######## ### # ### ########## # # ######## # # # …

6
テキストキューブ݀
前回テキストの正方形を作成しましたが、今、テキストの立方体を作成できますか? チャレンジ 文字列が与えられたら、文字列を立方体の形式で出力します。 文字列には常に2文字以上が含まれ、印刷可能なASCII文字のみが含まれると想定できます。 テキストキューブの作成方法 テストケース Input: Test Output: Test e ss s e e tseT T s e e e ss Test Input: Hello, world! Output: Hello, world! e dd l l l l r r o o o , w w w , , o o o r …

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