4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ヘロンの公式を用いてABC002のC問題を解いてみた!!!

Last updated at Posted at 2024-03-14

はじめに

Pythonを小学生5年生から触っている、現役中学生のwhile-true-ifです。

今回はpythonでヘロンの公式を用いた、ABC002のC問題を解いていきたいと思います。

この記事の対象者・内容

  • AtCoderをやってる人
  • Pythonをやってる人

ABC002のC問題

問題文

現在、神は天界のいたるところで測量を行っており、高橋くんは神の測量を手伝わなければなりません。
今回は三角形の測量です。高橋くんには
2 次元平面上の 3 つの点 A, B, C が与えられます。
少しでも早く母音を取り戻すために、三角形 ABC の面積を出力するプログラムを書いてください。

入力

入力は以下の形式で標準入力から与えられる。

$x_a\ y_b\ x_b\ y_b\ x_c\ y_c$

出力

三角形 ABC の面積を 1 行で出力してください。
また、出力の末尾には改行を入れること。
出力は絶対誤差が $10^{-2}$ 以下であれば許容される。

入力例1

1 0 3 0 2 5

出力例1

5.0

ヘロンの公式

Pythonのコード

def cie_heron(ax, ay, bx, by, cx, cy):
    x = math.sqrt((bx - ax) ** 2 + (by - ay) ** 2)
    y = math.sqrt((cx - bx) ** 2 + (cy - by) ** 2)
    z = math.sqrt((ax - cx) ** 2 + (ay - cy) ** 2)
    s = (x + y + z) / 2
    return math.sqrt(s * (s - x) * (s - y) * (s - z))

コードの説明

6つの引数は最初から、a点のx座標、a点のy座標、b点のx座標、b点のy座標、b点のy座標、c点のx座標、c点のy座標を示しています。

x,y,zという変数は三平方の定理を用いて、三角形の辺の長さを求めます。

そこから、三辺の長さからヘロンの公式を用いて、三角形の面積を返します。

実際に使用

注意点

import math

このコードをつけないと、RE(実行時エラー)になります。

ACコード

import math

def cie_heron(ax, ay, bx, by, cx, cy):
    x = math.sqrt((bx - ax) ** 2 + (by - ay) ** 2)
    y = math.sqrt((cx - bx) ** 2 + (cy - by) ** 2)
    z = math.sqrt((ax - cx) ** 2 + (ay - cy) ** 2)
    s = (x + y + z) / 2
    return math.sqrt(s * (s - x) * (s - y) * (s - z))

print(cie_heron(*map(int,input().split())))

このコードがACコードです。

ちなみに、ここに、幾何的な関数があがっています。(製作者は自分です)

おわりに

自分はAtCoderの知識がないので、ヘロンの公式でごり押してみました。

数学の力は偉大です。


自分は、GitHubをやっていて、基本はPythonを使用しています。

よければQiitaアカウントとGitHubアカウントのどちらもフォローをお願いします。(フォローされたら、フォロー返しします。)

また、この記事に「いいね」を付けてくれるとありがたいです。

4
1
1

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?