Math クラスの基本
Math.abs、Math.pow、Math.sqrt、Math.random など、頻繁に使う Math のメソッドを使用します。
「Math クラスの基本」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
Mathクラス
java.lang.Mathクラスは、一般的な数学演算のための静的ユーティリティメソッドを提供します。常に使用できるため、importは必要ありません。
絶対値と符号
Math.abs()は絶対値(負でない値)を返します。Math.signum()は、符号に応じて-1.0、0.0、または1.0を返します。
System.out.println(Math.abs(-42)); // 42
System.out.println(Math.abs(3.14)); // 3.14
System.out.println(Math.signum(-5.0)); // -1.0
System.out.println(Math.signum(0.0)); // 0.0
System.out.println(Math.signum(7.0)); // 1.0べき乗、平方根、立方根
べき乗にはMath.pow(base, exp)、平方根にはMath.sqrt()、立方根にはMath.cbrt()を使用します。
System.out.println(Math.pow(2, 10)); // 1024.0
System.out.println(Math.sqrt(144)); // 12.0
System.out.println(Math.cbrt(27)); // 3.0
// Hypotenuse of a right triangle (a=3, b=4)
double hyp = Math.sqrt(Math.pow(3, 2) + Math.pow(4, 2));
System.out.println(hyp); // 5.0最小値、最大値、クランプ
Math.min()とMath.max()は、2つの値のうち小さい方または大きい方を返します。これらを組み合わせると、値を範囲内に収めるクランプを実装できます。
int a = 10, b = 20;
System.out.println(Math.min(a, b)); // 10
System.out.println(Math.max(a, b)); // 20
// Clamp value between 0 and 100
int clamp(int value, int min, int max) {
return Math.max(min, Math.min(value, max));
}
System.out.println(clamp(150, 0, 100)); // 100
System.out.println(clamp(-5, 0, 100)); // 0
System.out.println(clamp(75, 0, 100)); // 75床関数、天井関数、丸め
Math.floor()は切り下げ、Math.ceil()は切り上げ、Math.round()は最も近い整数に丸めます(0.5は切り上げ)。
double price = 9.3;
System.out.println(Math.floor(price)); // 9.0
System.out.println(Math.ceil(price)); // 10.0
System.out.println(Math.round(price)); // 9
double shipping = 3.5;
System.out.println(Math.round(shipping)); // 4 (half-up)
// Round to 2 decimal places
double tax = 7.5678;
double rounded = Math.round(tax * 100.0) / 100.0;
System.out.println(rounded); // 7.57対数と指数
Math.log()は自然対数(底e)を計算し、Math.log10()は常用対数を計算し、Math.exp()はe^xを計算します。
System.out.println(Math.log(Math.E)); // 1.0
System.out.println(Math.log10(1000)); // 3.0
System.out.println(Math.exp(1)); // 2.718281828...
// Change of base: log2(8)
double log2 = Math.log(8) / Math.log(2);
System.out.println(log2); // 3.0
// Compound interest: P * e^(r*t)
double principal = 1000, rate = 0.05, years = 10;
double amount = principal * Math.exp(rate * years);
System.out.printf("Amount: %.2f%n", amount); // 1648.72三角関数メソッド
Mathが提供する三角関数は、ラジアン単位の角度を受け取ります。Math.toRadians()を使って度をラジアンに変換してください。
double angle = Math.toRadians(45);
System.out.printf("sin(45): %.4f%n", Math.sin(angle)); // 0.7071
System.out.printf("cos(45): %.4f%n", Math.cos(angle)); // 0.7071
System.out.printf("tan(45): %.4f%n", Math.tan(angle)); // 1.0000
// Distance between two GPS coordinates (simplified)
double lat1 = Math.toRadians(40.7128);
double lat2 = Math.toRadians(34.0522);
double deltaLat = lat2 - lat1;
System.out.printf("Delta lat (rad): %.4f%n", deltaLat);乱数
Math.random()は[0.0, 1.0)の範囲のdoubleを返します。整数を範囲内で得るには、乗算してキャストします。より良い乱数性が必要な場合は、java.util.Randomを使用してください。
// Random double [0.0, 1.0)
double rand = Math.random();
// Random int [min, max] inclusive
int min = 1, max = 6;
int dice = (int) (Math.random() * (max - min + 1)) + min;
System.out.println("Dice roll: " + dice); // 1–6
// Prefer java.util.Random for more features
import java.util.Random;
Random rng = new Random();
int secureRoll = rng.nextInt(6) + 1; // cleaner API
System.out.println("Secure roll: " + secureRoll);定数:PIとE
Math.PIとMath.Eは、πとオイラー数eを表すdouble定数です。幾何計算や金融計算に使用します。
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E); // 2.718281828459045
// Circle area and circumference
double radius = 7.0;
double area = Math.PI * Math.pow(radius, 2);
double circumference = 2 * Math.PI * radius;
System.out.printf("Area: %.2f%n", area); // 153.94
System.out.printf("Circumference: %.2f%n", circumference); // 43.98Math.floorDivとMath.floorMod
Math.floorDiv()とMath.floorMod()は、負の数を一貫して処理します。負の数で予想外の結果になることがある/演算子や%演算子とは異なります。
// Regular % can be negative with negative dividend
System.out.println(-7 % 3); // -1 (may surprise you)
System.out.println(Math.floorMod(-7, 3)); // 2 (always non-negative)
// Floor division rounds toward negative infinity
System.out.println(-7 / 3); // -2 (truncates toward zero)
System.out.println(Math.floorDiv(-7, 3)); // -3 (floors down)
// Use floorMod for cyclic calculations like days of week
int day = Math.floorMod(-1, 7); // Sunday (6), not -1
System.out.println(day); // 6実践:距離と物理
物理の問題にMathメソッドを適用します。三角関数と平方根を使って、投射物の飛距離を計算します。
// Projectile range: R = v^2 * sin(2*angle) / g
double velocity = 50.0; // m/s
double angleDeg = 45.0; // degrees
double g = 9.81; // m/s^2
double angleRad = Math.toRadians(angleDeg);
double range = Math.pow(velocity, 2) * Math.sin(2 * angleRad) / g;
System.out.printf("Projectile range: %.1f m%n", range); // 254.8 mクイックチェック
Math.floorMod(-7, 3)の出力は何でしょうか?
復習:Mathクラス
重要なポイント:
- 基本的な比較にはMath.abs、Math.min、Math.maxを使用します
- べき乗と平方根・立方根にはMath.pow、Math.sqrt、Math.cbrtを使用します
- 丸めにはMath.floor、Math.ceil、Math.roundを使用します
- 対数と指数にはMath.log、Math.log10、Math.expを使用します
- Math.sin、Math.cos、Math.tanはラジアンを使用します。Math.toRadiansで変換してください
- Math.floorModは循環演算で負の数を適切に処理します
- Math.PIとMath.Eは組み込み定数です
よくある質問
「Math クラスの基本」レッスンは無料ですか?
はい。「Math クラスの基本」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「Math クラスの基本」で何を学びますか?
Math.abs、Math.pow、Math.sqrt、Math.random など、頻繁に使う Math のメソッドを使用します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Math クラスの基本」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。