6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

三角関数とか使ったメモ

Last updated at Posted at 2013-10-14

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_10_B
ココの出題で必要になったので

サンプルで与えられている値は、
a の長さ, b の長さ, Cの大きさ が、
4 3 90
となっている。
コレはサンプルの値ですし、abの間の角も90度と非常に都合のいい角度なので、sinとかcosとか計算する必要はなし。
テストケースではそうではなくなってくるのでsinやcosでの計算が必要になる。

sankaku.py
# sin,cosのために必要
# 平方根の計算はx**0.5でも代用出来てるっぽい
import math
 
# ここで値を受け取る
(a,b,C) = map(float, raw_input().split())
# 角度Cをラジアン数に変える。
# ラジアン数とは何か不明
cs=math.radians©
# ここで余弦定理で残る3辺目の長さを求める。
# 公式は、a^2=b^2+c^2-2ab*cosA
# ここではmath.sqrtですぐに辺の長さを出しています。
c=math.sqrt(a**2+b**2-2*a*b*math.cos(cs))
# 正弦定理でmを底辺とした時の高さを出しています。
h=b*math.sin(c)
# 3辺の長さから三角形の面積を。今回は使わず落書き状態。
# ans=(s*(s-b)*(s-n)*(s-o))**0.5
# print ((a-o)**2 + (b-p)**2)**0.5
# print ans
# 面積と辺の長さの合計を計算して出力。
S=h*n/2
L=a+b+c
print S
print L
print h

今回の三角形のイメージ図
三角形

3辺は小文字のa,b,cで定める。辺a,bに挟まれる(辺cと向かい合わせになる)角は∠Cと定める というルール付けを中学・高校で習った気がする。
そしてせっかくペイント起動したのに高さのhを書き忘れた悲しみ。
いつか修正します。。。

ラジアンは弧度法とも言われるらしい。↓度数法との対応表。

度数法 30° 45° 60° 90° 180° 360°
弧度法 0 π/6 π/4 π/3 π/2 π
このテーブルの記法って上段は太字になってしまうのかな。
それとも回避法あるのに私が調べたりないかな。まぁ度数法ならよく馴染みがありますよね!と強調してるってことで。
ラジアン数は何故生まれたのか、どんな時にどんな風に使うかを詰めていくとアレなので詳細はパスで。

度数法の表記などは ° や deg などが用いられることもあるらしい。きれいなコード書いている方のを拝見した際に deg という変数があったらおそらくは度数法での角度のことでしょう。
弧度法のラジアン数の表記で rad となっているらしい。πはソースコードの中では残念に使えない文字。英語表記だとpiですが math.pi と被るので変数名に使うのは避けたほうが良さそうっぽい。

2辺の長さとその間の角が与えられれば、三角形の面積と3辺の長さが出るとこまで以外にもう少し書いていく予定。

13/10/15 23時過ぎくらい
ごちゃまぜ表記を修正すみ。ラジアン数について少し補足。

ここまで殴り書き 13/10/15 3時過ぎくらい
後で修正しますメモ
n,m,oとかa,b,cとかごちゃまぜなのを表記を統一する。
図がないと誰かがせっかく読んでくれても分かりにくい。自分で後で読んでも分からなくなるので図をつける。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?