1
さまざまな種類の三角形を解決するRubyプログラムを構築する最良の方法は、具体的にはAAS、ASA、SAS、SSA、SSS三角形です。Rubyでの三角解法の扱い
のみ三つの異なるソリューションがあります。正弦定理を使用して、余弦とあらゆる角度の法則は、私がこれの異なる実装で遊んでてきた180
まで追加、しかし、私は見つけることができませんこの素敵なDRYを作る良いクリーンな方法。
は、私は現在、このような何かをやっている:
def solve
#AA
!self.A && self.B && self.C ? self.A = 180 - (self.B + self.C) : false
!self.B && self.A && self.C ? self.B = 180 - (self.A + self.C) : false
!self.C && self.B && self.A ? self.C = 180 - (self.B + self.A) : false
#AAS
!self.a && self.A && self.C && self.c ? self.a = (self.c * Math.sin(self.A.degrees))/Math.sin(self.C.degrees) : false
!self.b && self.B && self.C && self.c ? self.b = (self.c * Math.sin(self.B.degrees))/Math.sin(self.C.degrees) : false
end
基本的に私はそれらを介して、ループを、それを解決し、解決できるで最初のものをつかむためにすべての可能な方法のリストを持っていることに終わるものを。その後、再びループスルーし、解決策が見つからなくなるまで2回目の刺しを行います。しかし、それは全くドライではありません。
これをどのように攻撃しますか?
異なるトリア何を解きますどうか? – sawa
@sawaの角度と辺、したがってAAS =角度、角度のサイドなど –
はい、私はそれを見て理解しましたが、解決すべき問題は何ですか? – sawa