おねーちゃん!数学で「平方根」とか「サイン(sin),コサイン(cos),タンジェント(tan)」ってちょっと変わった計算方法を習うけど、これってプログラムで計算ってできるの?
もちろん!そんな時は「math」っていうのを使えば計算できるよ!
やっぱりできるんだね!この「math」は一体どんなことができるの?
「math」を使ってできる計算方法はすごく多いし、習ってないこともあるだろうから全部は理解しなくて良いけど、まずは一覧で紹介するね
| 関数 | 説明 | 例 | 結果 |
|---|---|---|---|
| math.sqrt(x) | x の平方根を返す | math.sqrt(9) | 3.0 |
| math.pow(x, y) | x の y 乗を返す(浮動小数) | math.pow(2, 3) | 8.0 |
| math.factorial(x) | x の階乗(x!)を返す | math.factorial(5) | 120 |
| math.dist(p, q) | 2点 p, q 間の距離(ユークリッド距離) | math.dist([0, 0], [3, 4]) | 5.0 |
| math.gcd(x, y) | x と y の最大公約数 | math.gcd(24, 36) | 12 |
| math.lcm(x, y) | x と y の最小公倍数 | math.lcm(4, 6) | 12 |
| math.floor(x) | x を小さい方の整数に切り下げ | math.floor(3.7) | 3 |
| math.ceil(x) | x を大きい方の整数に切り上げ | math.ceil(3.1) | 4 |
| math.trunc(x) | x の小数部分を切り捨て | math.trunc(3.9) | 3 |
| math.pi | 円周率(π) | math.pi | 3.1415... |
| math.sin(x) math.cos(x) math.tan(x) | x の三角関数(単位はラジアン) | math.sin(math.pi/2) | 1.0 |
| math.radians(deg) | 度をラジアンに変換 | math.radians(180) | 3.1415... |
| math.degrees(rad) | ラジアンを度に変換 | math.degrees(math.pi) | 180.0 |
| math.log10(x) | 常用対数(底10) | math.log10(1000) | 3.0 |
| math.log(x) | 自然対数(底e) | math.log(math.e) | 1.0 |
| math.exp(x) | e の x 乗 | math.exp(1) | 2.718... |
| math.e | 自然対数の底(e) | math.e | 2.718... |
ホントにどんな計算でもできる...!!知らないやつまであるよ
これでも一部だけどね
使いたくなった時に調べるくらいでちょうど良いと思うよ
あーよかった...
ところで、「切り上げ」と「切り下げ」はあるのに「四捨五入」は無いんだね
あぁ、そういえば紹介してなかったね
「四捨五入」はmathを使わなくても「round(数値)」っていうのがあるんだ
そうなんだ!なんか四捨五入だけ別だと「math.round()」とかやっちゃいそう
もう一つ気を付けてほしいことがあって、基本的には四捨五入の時は「round()」を使うことが多いけど特定の条件でうまくいかない時があるんだよね
あれ??「0.5」を四捨五入すると「1」になるはずなのに「0」になってる!!
そう、「round()」は細かくいうと「四捨五入」じゃなくて「偶数丸め」と言って、丸める数値が「ちょうど真ん中」の場合は偶数側に丸める挙動をするんだよね
なるほど、分からん...
まぁおかしい挙動になる可能性があるって注意しておけば大丈夫だよ!
一応、四捨五入を正しくする場合のプログラムも紹介しておくね
なんか難しそう...
まぁそこまで四捨五入を使う場面は多くないから、こういうやり方があるんだって認識くらいで大丈夫だよ
そうしとく!
他の関数についてもそれぞれ気を付けるポイントがあったりするから、挙動がおかしいなと思ったら原因を調べるクセを付けるようにしようね!
