1

これを正しくコーディングしたかどうか誰か教えてもらえますか? これは、周囲、高度、および角度が与えられた三角形の辺を解くための私のコードです (代数についてはhttp://www.analyzemath.com/Geometry/challenge/triangle_per_alt_angle.htmlを参照してください) 。

Prompt P
Prompt H
Prompt L [the angle]
(HP^2)/(2H(1+cos(L))+2Psin(L))→Y
(-P^2-2(1+cos(L))Y/(-2P)→Z
(Z+sqrt(Z^2-4Y))/2→N
[The same as above but Z-sqrt...]→R
If N>0
N→U
If R>0
R→U
Y/U→V
sqrt(U^2+V^2-2UVcos(L))→W
Disp U
Disp V
Disp W

また、角度 = 90 を入力できるようにするにはどうすればよいですか? また、このコードでは、高度が b と c の間であるかどうかは関係ありませんか (Web サイトをもう一度参照してください)。前もって感謝します

4

2 に答える 2

2
  1. コードはすでに L=90° で機能しています。
  2. はい、高度は、ポイントとポイントの間Aのベースまでの距離であり、そのベースと直角を形成する必要があります。導出は、特にそれが使用する方法と2番目の領域の式に関して、その仮定を行いました。異なる方法で描かれた場合、その正確な式は適用されません。aBCha1/2 h ah
  3. 2番目の入力セットが非現実的な答えになった理由は、一連の数学的パラメーターが互いに矛盾し、不可能な構造を説明することがあり、Ph、およびL値がまさにそれを行うためです。具体的には、不可能な三角形について説明します。

高度hと角度が与えられた場合、達成できるL最小の周囲Pは、中央で で分割された二等辺三角形hです。を使用L=30すると、これには周囲P = a + b + c = 2h tan15 + h/cos15 + h/cos15があり、これを に差し込むとh=3、結果は になりP=7.819ます。代わりに を使用しようとしましたP=3+sqrt(3)=4.732。7.819 よりも小さいさまざまな数値を使用してみてください (プラス少し。ここでは四捨五入しています)。すべてが虚数の結果になることがわかります。それは、現実には存在し得ないものを計算していることを示す数学です。

Y5 行目のと の間に欠けている閉じ括弧を埋めると、/コードは完全に機能します。

私はあなたとは少し異なるコードを書きました。これが私がしたことです:

Prompt P
Prompt H
Prompt L

HP²/(2H(1+cos(L))+2Psin(L))→Y
(HP-Ysin(L))/H→Z

Z²-4Y→D
If D<0:Then
Disp "IMAGINARY"
Stop
End
(Z+√(D))/2→C

Y/C→B
P-(B+C)→A

Disp A
Disp B
Disp C

編集: @Gabriel、角度30-60-90について(この質問に関して)特別なことは何もありません。このような三角形を表すPh、および入力のセットは無数にあります。Lただし、実際に答えでそのような三角形に到達したい場合は、実際には質問を変更しています。L1 つの角度とPとだけを知る代わりに、h3 つの角度 (30-60-90) とPを知ることができますh。三角形を過剰に指定したため、ランダムに生成された入力のセットが不可能な三角形を表すことはほぼ確実です。でたらめな例として、h0.0001 と指定し、P99999 の場合、それは明らかに不可能です。なぜなら、高度が小さく、極端ではない角度 (30-60-90 度) を持つ三角形は、その高度の何倍も周長を達成できない可能性があるからです。

Pまたはの 1 つだけから開始する場合hは、既知の から三角形のすべてのパラメーターを計算する方程式を導き出し、Pまたはh30-60-90 度の角度の知識を加えることができます。

この一例を挙げると、辺aが 90° と 60° の角度の間の三角形の底辺を形成すると仮定するとL=30、 と (60° の角度を B とラベル付けする)h=bが得られ、次の簡単な方程式を得ることができます。すべてのパラメータ:

P = a + h + c
sin60 = h/c
cos60 = a/c

=> P = c cos60 + c sin60 + c
   P = c(cos60 + sin60 + 1)
   c = P/(cos60 + sin60 + 1)

   b = h = c sin60
   a = c cos60

P=100私たちが持っているプラ​​グイン

c = 100/(cos60 + sin60 + 1) = 42.265
b = h = 36.603
a = 21.132

P=100h=36.603、およびをコードにプラグインすると、L=30これらの正確な結果が得られることがわかります。

于 2015-03-08T08:18:00.700 に答える