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

三角法が重要な役割を果たす課題に。

8
UpgoatまたはDowngoat?
ヤギの画像が与えられた場合、プログラムはヤギが逆さまになっているかどうかを特定するのが最善です。 例 これらは入力が何であるかの例です。実際の入力ではありません 入力: 出力: Downgoat スペック プログラムは最大30,000バイトである必要があります 入力には完全なヤギが含まれます 写真には常にヤギが含まれます ヤギが逆さまの場合、output Downgoat、そうでない場合Upgoat ただし、入力は画像として入力できます(ファイル名、画像のbase64など)。 「Upgoat」または「Downgoat」を含む画像名またはその他のメタデータに依存しないでください。要点のファイル名は参照用です。 ハードコードしないでください。それは退屈だ、私はそれを完全に強制することはできませんが、私はうまく尋ねることができます。 テストケース 画像の要点。で始まる画像にdowngoatはDowngoat出力があり、で始まる画像にupgoatはUpgoat出力があります。 テストケースの2番目のバッチ すべてのテストケースで画像をテストしてください。これらの画像はjpgsです。画像サイズは異なりますが、それほど大きくはありません。 注:回答を受け入れる前にいくつかのテストケースを追加して、ハードコードする回答を回避し、プログラムの一般的なパフォーマンスを確認することができます。 アバターを正しく取得するためのボーナスポイント:P 得点 スコアは次の方法で計算できるパーセントです: (number_correct / total) * 100

30
円形のパスを移動する単一ピクセル
これは、タスクが言語ごとに最短のコードを提供することであるグラフィカル出力の課題です。 仕事 コードは、単一の紫色のピクセル(16進数値#800080またはrgb(128、0、128))をプロットし、時計回りに円を描いて移動する必要があります。円を一周するのにちょうど60秒かかり、無期限に継続する必要があります。ピクセル以外は、画面またはウィンドウに何も表示されません。円の幅は、画面またはウィンドウの幅の0.75(適切に丸める)で、背景は白である必要があります。愚かな解決策を防ぐには、画面またはウィンドウの幅を少なくとも100ピクセルにする必要があります。 あなたのコードは完全なプログラムでなければなりません。 言語とライブラリ 任意の言語またはライブラリを使用できます。ただし、可能な場合はコードをテストできるようにしたいので、Ubuntuでコードを実行する方法について明確な指示を提供できれば非常にありがたいです。 上位20言語がありません。助けが必要です。 現在、次の上位20のプログラミング言語にはソリューションがまったくありません。 C、C ++、C#、Python、PHP、Visual Basic .NET、Perl、Delphi / Object Pascal、アセンブリ、Objective-C、Swift、Pascal、Matlab / Octave、PL / SQL、OpenEdge ABL、R カタログ この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 ## Perl, 43 + 2 (-p flag) = 45 bytes 言語名をリンクにして、スニペットに表示することもできます。 ## [><>](http://esolangs.org/wiki/Fish), 121 …

19
グラフを描く
チャレンジ 整数の入力、所定の()、出力のグラフからの以下です。0 &lt; n &lt; 50 y = R e((− n )x)x = − 3 x = 3nnn0 &lt; n &lt; 500&lt;n&lt;500<n<50y= R e((− n )バツ)y=Re((−n)バツ)y=\mathrm{Re}((-n)^x)x = − 3バツ=−3x = -3x = 3バツ=3x = 3 ここで、は複素数実数部です。pR e(p)Re(p)\mathrm{Re}(p)ppp なお、R e((−n)バツ)= nバツcos(πx )Re((−n)バツ)=nバツcos⁡(πバツ)\mathrm{Re}((-n)^x) = n^x \cos{(\pi x)} 出力 出力は、任意の形式(画像やウィンドウなど)になります。ASCIIアートは許可されていません。 グラフには軸が必要ありません(組み込みのグラフ関数を持たない言語が競合できるようにするため)。 画像を出力する場合、各辺は500ピクセルより長くなければなりません。同様に、プロットはできる限り画像を埋める必要があります。 プロット間の最小間隔は0.05です。 …

15
ブラックボックス三角法
以下の12個の三角関数を区別できるプログラムや関数を書きます: sin、 cos、 tan、 asin、 acos、 atan、 sinh、 cosh、 tanh、 asinh、 acosh、 atanh。 プログラムには上記の関数のいずれかがブラックボックスとして与えられ、上記の関数名または言語での名前の付け方のいずれかで関数名を出力する必要があります。 これはcode-golfであるため、各言語で最も短い回答が優先されます。12個の入力すべてにテストケースを含めることで、コードが正しく機能することを示す必要があります。選択した言語に上記のすべての機能の組み込みが含まれていない場合は、欠落しているものの独自の賢明な実装を提供する必要があります。 さらなる説明 基礎となるビルドインが複素数を処理できる場合は、複素数を使用してブラックボックスを照会できます。 のみ実数を使用する場合、ブラックボックス機能へのクエリは、ドメインエラーを与えることができます。この場合、ブラックボックスはエラーの存在のみを伝え、エラーの発生元は伝えないと想定する必要があります。dO M A 、C 、O 、S 、H ∩ D o m a t a n h = ∅ dom acosh∩dom atanh=∅ dom\ acosh \cap dom\ atanh = \emptyset エラーの代わりに、他の値、たとえば、NaNまたはnullが返された場合、送信でそれらを処理できる必要があります。 有益なサンドボックスフィードバックをありがとう!

30
ペダルのコサイン
上司からコサイン関数を書くように言われました。数学のオタクとして、私の心はすぐに適切なテイラーシリーズを思いつきました。 cos(x) = 1 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + ... + (-1)^k x^(2k) / (2k)! + ... しかし、私の上司はとてもうるさいです。彼は、計算するテイラー級数の項の数を正確に指定できるようにしたいと考えています。この関数を書くのを手伝ってもらえますか? あなたのタスク to xからの浮動小数点値とより小さい正の整数が与えられた場合、上で与えられたのテイラー級数の最初の項の合計を計算します。02 pin100ncos(x) これはcode-golfなので、最短のコードが優先されます。入力と出力は、標準的な方法で取得できます。標準的な抜け穴は禁止されています。 ノート xとの間に明確な区切りがある限り、入力は任意の合理的な形式で行うことができますn。 入力と出力は浮動小数点値である必要があります。少なくとも、標準の丸め規則で単精度IEEE浮動小数点数を使用して式を計算するのと同じくらい正確です。 使用されている言語に理にかなっている場合、正確な有理量を使用して計算を実行できますが、入力と出力は10進数形式のままです。 例 x | n | Output ----+----+-------------- 0.0 | 1 | 1.0 0.5 …

12
偉大さのサイン
前書き 誰もがサイン(sin)、コサイン(cos)、タンジェント(tan)、コタンジェント(cot)、セカント(sec)、コセカント(csc)について聞いたことがあります。ほぼすべての角度にそれらがあります。 あまり知られていない、または記憶されていないのは、exsecant(exsec)、excosecant(excsc)、versine(versin)、およびcoverine(cvs)です。ほぼすべての角度にもこれらがあります。あまり知られていないものもありますが、これらに固執します。 45°の角度θについて、これらの視覚化を作成しました。 チャレンジ n度単位で角度を入力し、出力するプログラムを作成します。 角度のサイン n 角度の余弦 n 角度のタンジェント n 角度の割線 n 以下の少なくとも 1つ。このリストの追加アイテムはすべて、-5%、最大-25%のボーナスを獲得します。 角度の割線 n 角度の余割 n 角度の余割 n 角度の逆 n 角度のカバー n 角度の余接 n ボーナスを適用した後、スコアが小数の場合、最も近い整数に切り上げます。 入力 STDINまたは関数呼び出しを介して入力を受け入れることができます。単一の引数nが渡されます。 n 常に0より大きく、90以下の整数全体になります。 出力 45°のサインの出力の例を次に示します。すべての出力項目はこの形式である必要があります。アイテムの順序は関係ありません。 sine: 0.70710678118 すべてのアイテムには、小数部の後に正確に4つの数字が必要です(精度は1万分の1)。以下に丸めの例をいくつか示します。 0 -&gt; 0.0000 1 -&gt; 1.0000 0.2588190451 -&gt; 0.2588 5.67128181962 -&gt; 5.6713 …

7
極座標グラフチャート上を移動する2点間の距離
問題の簡単な説明 原点から発せられる光線と原点を中心とする円のみを移動する2点間の最小距離を見つけるプログラムを作成します。 前提の説明 今、私たちが飛行機に乗っていると想像してみましょう。この飛行機では、特別な方法でのみ旅行が許可されています。原点から発せられる光線で移動できます。 また、円を中心とした任意の円を旅することができます 今、私たちの目標は、この飛行機のある地点から別の地点に移動することです。ただし、単純なユークリッドパスを移動することはできません。ポイントがたまたま中心から放射される光線に当たる場合にのみ、これを行うことができます。 これは私たちの光線の1つに当たるので、この上を移動できます。 原点を中心とする円上を移動することもできます。 例 これが課題です。 最短経路である地点から別の地点に到達する必要があります。多くの場合、これは円と光線の移動の組み合わせです。 ただし、これは2つの光線で移動することもできます。 最小距離を移動する2つのパスが存在する場合があります。 問題 あなたの課題は、これらのルールに従えば、2つのポイントが与えられたときにそれらの間の最小距離を与えるプログラムを書くことです。入力は、長方形または極形式のいずれかで指定でき、出力は1つの数値、つまり距離である必要があります。 テストケース (矩形入力の場合) (1,1) (1,-1) -&gt; ~ 2.22144 (0,0) (1, 1) -&gt; ~ 1.41421 (1,0) (-0.4161 , 0.90929) -&gt; ~ 2 (1,1) (1, 0) -&gt; ~ 1.19961 (1,2) (3, 4) -&gt; ~ 3.16609

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

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
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 

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-&gt; 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 …

1
交差点での排他的エリアの検索
これは一見難しい挑戦的なジオメトリパズルです。 円与えられA、及びn他の円B[n]内に含まれる全面積見つけるAではない任意の円内をB。 コードはできるだけ短くする必要があります。 入力 入力には次の情報が含まれている必要があります。 circleの半径を表す浮動小数点数A。 の円の半径を表す浮動小数点数のリストB。 の円の中心のリストB。プログラムでは、極座標またはデカルト座標のいずれかの中心を想定している場合があります。 オプションで、nBの円の数を受け取ることができます。この入力は必須ではありません。 円の中心がA原点、つまり点であると想定され(0, 0)ます。 の2つの円Bが同一ではないことが保証されますが、すべてのB交差する円A、すべての中心Bが外側A、または2つの円がB互いに交差しないことは保証されません。ソリューションがさまざまなエッジケースを処理できることを確認します。 入力は任意の順序で、テキスト入力(stdinまたは同等の言語を介して)、関数パラメーター、またはコマンドライン引数の形式で受け取ることができます。 テキスト入力の受信を選択した場合、入力の間に1文字または2文字の印刷可能なASCII区切り文字が必要です。 出力 プログラムまたは関数Aは、の円のいずれにも属さない総面積を表す単一の浮動小数点数を出力する必要がありますB。回答は、すべてのテストケースで少なくとも3つの有効数字に対して正確でなければなりません。 一般的なコードゴルフ規則が適用されます。 ソリューションは、円内のサンプリングポイントに依存して領域を決定しないでください。 円の交差点を自動的に見つける、円の交差点内の領域を見つける、またはこの問題をすぐに解決する組み込み機能は許可されていません。 テストケース 各画像で、円のA輪郭は青で、円のB輪郭は緑、黒で塗りつぶされています。返されるべき領域は赤で塗りつぶされています。 (私のソリューションをチェックしてくれたRainer Pに感謝します) テストケース1: A = {x: 0, y: 0, rad: 50} B[0] = {x: 0, y: 0, rad: 100} Result: 0.00 テストケース2: A = {x: 0, y: 0, rad: …

3
通常のポリグラム
頂点の数n ≥ 3と「ステップサイズ」1 ≤ m &lt; n/2 (2つの接続された頂点間の距離を示す)を指定して、対応する通常のポリグラムのグラフィカル表現を出力します。ポリグラムが複数の閉じたループで構成されている場合、各ループは異なる線色でレンダリングする必要があります。(これが分かりにくいように思える場合は、以下の例で問題を解決してください。) ルール 問題の合理的な解決策は、これらのルールを自動的に満たす可能性があります-「この黒いブロックは完全にポリグラムですが、あなたはそれを見ることができないので線幅を9000以上に設定しました。」 ポリグラムをファイル(ディスクまたは標準出力ストリームに書き込まれる場合があります)にレンダリングするか、画面に表示できます。 ベクターグラフィックまたはラスターグラフィックを使用できます。出力をラスタライズする場合、画像のサイズは400x400ピクセル以上である必要があり、ポリグラムの半径(中心から各頂点までの距離)は辺の長さの35%〜50%でなければなりません。 ポリグラムの縦横比は1でなければなりません(そのため、頂点は適切な円上にあります)-画像のキャンバスは長方形になります。 ポリグラムの線は、半径の5%より太くてはなりません(そしてもちろん、見えるようにゼロ以外の太さでなければなりません)。 ポリグラムに加えて軸またはフレームをレンダリングできますが、それ以外は何もレンダリングできません。 任意の(単色の)背景色を選択できます。 複数の閉ループで構成されるポリグラムの場合、少なくとも6つの視覚的に異なる色をサポートする必要があります。これらはすべて背景とは異なる必要があります。(グレースケールは、シェードがスペクトル全体に十分に広がっている場合は問題ありません。)コードは6つ以上のループで機能する必要がありますが、追加のループで色を区別する必要はありません(つまり、再利用することもできます)その時点での以前のループの色)。 これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。 例 以下は、n = 16(列がに対応しn、行がに対応する)までのすべての出力mです。 クリックして拡大版をご覧ください。 largeの例として、以下nが(n, m) = (29, 11)あり(30, 12)ます:

5
高速トリガー計算
高速三角法計算 あなたの仕事は、角度のサイン、コサイン、タンジェントを度で計算できるプログラムを作成することです。 ルール 組み込みの三角関数はありません(言語にこれらの関数がある場合は、割線、余割、余接もありません)。 ルックアップテーブルを使用できますが、それらの合計サイズは3000メンバーを超えてはなりません(3つの操作をすべて合わせて)。trig.lookupそれらがコードを混同しないように、ファイル(例えば)からテーブルを読むようにしてください。 ネットワークアクセスなし。 以下で説明するように、出力を正しく丸める必要があります。床や天井を使用しないでください。 有効桁数が7桁である限り、連続分数など、任意の方法を使用して値を計算できます。 あなたのコードはそれ自体で時間を計ることができなければなりません。ファイルI / O操作を時間から除外します。トリガーと丸めを行う関数の時間を計ってください。 私はあなたのコードを実行できなければなりません。自由に利用できるコンパイラ/インタプリタへのリンクを投稿し、コードをコンパイル/実行するために必要な指示を与えてください(GCCに渡すオプションなど)。 標準の抜け穴が適用されます。 入力フォーマット trig.inご使用の言語がファイルI / Oをサポートしていない限り、呼び出されたファイルから読み取ります。 角度は0から360までです。 入力は、改行で区切られた10桁の10桁の有効数字までの角度で構成されます。例えば: 90.00000000 74.54390000 175.5000000 出力フォーマット 指定された各角度に対して、スペースで区切られた7つの有効数字のサイン、コサイン、タンジェントを1行で出力する必要があります。1.745329E-5for tan 0.001や1.000000E+0for などの「科学表記」を使用しsin 90ます。 無限大またはNaNを表します。nたとえば、の出力はである90.00000000必要があります1.000000 0.000000 n。 入力が改行で区切られた3つの角度の場合、出力は3つのラインで構成され、各ラインにはサイン、コサイン、タンジェントが含まれます。 他には何も出力できません。 trig.outご使用の言語がファイルI / Oをサポートしていない限り、呼び出されたファイルへの出力。 得点 最速のコード。課題は、これらの3つの値をできるだけ迅速に計算するプログラムを作成することです。最も速い時間が勝ちます。 誰もが多くの角度の同じテスト入力を受け取ります。 時間は私のマシンに記録されます。 スコアは、同じ入力での3回の実行の平均です(実行の間に何も保存できないことは明らかです)。 コンパイル時間は含まれていません。この課題は、言語よりも使用される方法に関するものです。(誰かがJavaなどの言語のコンパイル時間を除外する方法を教えてくれたら、とても感謝しています) 私のマシンはUbuntu 14.04インストールです。プロセッサの統計はPastebinにあります(実行により取得されますcat /proc/cpuinfo)。 私はそれをテストしたときにあなたの答えにあなたの時間を編集します。

2
三角形の球面過剰
三角形の球面過剰 ご存知のように、平面三角形の角度の合計は180度に等しくなります。 ただし、球面三角形の場合、角度の合計は常に180度より大きくなります。球面三角形の角度の合計と180度の差は球面過剰と呼ばれます。タスクは、与えられた頂点座標で三角形の球面過剰を計算することです。 いくつかの背景 球面三角形は、球の3つの大円で定義される球の一部です。 球面三角形の両側と角度は、角度測定の用語で測定されます。これは、各側面が球体と球体の中心にある頂点との平面角度の交点と見なすことができるためです。 3つの異なる大円はそれぞれ8つの三角形を定義しますが、 適切な三角形考慮します。角度と側面の測定値が満たされる三角形 地理座標系の観点から三角形の頂点を定義すると便利です。両端の経度λと緯度Φが与えられた場合、球の弧の長さを計算するには、次の式を使用できます。 、 どこ またはより明示的に: (ソース:https : //en.wikipedia.org/wiki/Haversine_formula) 球面三角形を解くために使用できる2つの基本式は次のとおりです。 余弦の法則: サインの法則: (ソース: https //en.wikipedia.org/wiki/Spherical_trigonometry#Cosine_rules_and_sine_rules) 3つの側面がある場合、コサインルールを使用して角度を簡単に計算できます。 最後に、三角形の球面過剰が定義されます。 三角形の球体過剰とその面積との関係について興味深いのは: 単位球では、三角形の過剰はその三角形の面積に等しくなります! タスク 三角形の頂点座標を指定して、三角形の球面過剰を角度で計算する関数またはプログラムを作成します。頂点座標は、地理座標系で提供されます。 各頂点はで渡す必要があります[latitude in degrees][N|S][longitude in degrees][E|W]。経度、EまたはW緯度が90の場合はスキップできます。 90N、90S、10N100E、30S20W一方で、適切な頂点記述されている80Nか55Sではありません。 テストケースでは、緯度と経度は常に整数です。 エラーが1度未満の回答は受け入れられます(以下の例のように)。したがって、結果は実数または整数の両方としてレンダリングできます。 例 入力 90N0E 0N0E 0N90E 出力 89.999989 入力 90N 0N0E 0N90E 出力 89.999989 入力 0N0E …

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