JavaRush /وبلاگ جاوا /Random-FA /کلاس ریاضی جاوا و روش های آن

کلاس ریاضی جاوا و روش های آن

در گروه منتشر شد
در این مقاله به بررسی مختصری از کلاس ریاضی در جاوا می پردازیم. بیایید در مورد متدهای این کلاس و نحوه استفاده از آنها صحبت کنیم. کلاس Math در بسته java.lang قرار دارد و مجموعه ای از روش های ثابت را برای انجام تعدادی از محاسبات مختلف ریاضی ارائه می دهد. در زیر نمونه هایی از محاسبات وجود دارد که ممکن است کلاس ریاضی برای آنها مفید باشد:
  • محاسبه مقادیر مطلق (مقادیر مدول)
  • محاسبه مقادیر توابع مثلثاتی (سینوس، کسینوس و غیره)
  • ارتفاع به درجات مختلف
  • استخراج ریشه در درجات مختلف
  • تولید اعداد تصادفی
  • گرد کردن
  • و غیره.
در زیر سعی خواهیم کرد به نحوه کمک کردن کلاس ریاضی جاوا به حل مسائل ذکر شده در بالا نگاه کنیم. کلاس ریاضی جاوا و روش های آن - 1بیایید تجزیه و تحلیل کلاس را با روش هایی شروع کنیم که به شما امکان می دهد یک مدول مقدار را محاسبه کنید. روش abs مسئول این است. این روش بیش از حد بارگذاری شده است و کلاس Math دارای تفاوت های زیر است:
  • شکم دوتایی استاتیک (دبل الف)
  • abs شناور استاتیک (float a)
  • static int abs (int a)
  • شکم بلند ثابت (طول a)
مثال استفاده:
public static void main(String[] args) {
        System.out.println(Math.abs(-1));      // 1
        System.out.println(Math.abs(-21.8d));  // 21.8
        System.out.println(Math.abs(4532L));   // 4532
        System.out.println(Math.abs(5.341f));  // 5.341
    }

محاسبه مقادیر توابع مثلثاتی

کلاس ریاضی به شما امکان می دهد توابع مثلثاتی مختلفی را محاسبه کنید - سینوس ها، کسینوس ها، مماس ها و غیره. فهرست کاملی از روش ها را می توانید در وب سایت اسناد رسمی پیدا کنید . در زیر لیستی از این روش ها آورده شده است:
  • گناه مضاعف ساکن (الف مضاعف)
  • cos دوگانه استاتیک (double a)
  • استاتیک دوبرنزه (دوبل الف)
  • استاتیک دابل اسین (دبل الف)
  • آکوس دوگانه استاتیک (دبل الف)
  • آتان مضاعف استاتیک (دبل الف)
روش محاسبه: سینوس، کسینوس، مماس، آرکسین، آرکوزین، آرکتانژانت. هر روش یک مقدار برای زاویه «a» محاسبه می کند. این پارامتر به هر روش ارسال می شود و در هر مورد بر حسب رادیان (و نه بر حسب درجه، همانطور که ما عادت کرده ایم) اندازه گیری می شود. اینجا دو خبر خوب و بد هست. بیایید با خوب شروع کنیم. کلاس Math روش هایی برای تبدیل رادیان به درجه و درجه به رادیان دارد:
  • استاتیک دو تا درجه (آنگراد دو برابر)
  • استاتیک مضاعف به رادیان (انگد دو برابر)
در اینجا روش toDegrees زاویه آنگراد را که بر حسب رادیان اندازه گیری می شود، به درجه تبدیل می کند. برعکس، روش toRadians، زاویه زاویه را که بر حسب درجه اندازه گیری می شود، به رادیان تبدیل می کند. خبر بد این است که این اتفاق با مقداری خطا رخ می دهد. در اینجا مثالی از محاسبه سینوس و کسینوس آورده شده است:
public static void main(String[] args) {
        System.out.println(Math.sin(Math.toRadians(0)));
        System.out.println(Math.sin(Math.toRadians(30)));
        System.out.println(Math.sin(Math.toRadians(90)));

        System.out.println(Math.cos(Math.toRadians(0)));
        System.out.println(Math.cos(Math.toRadians(30)));
        System.out.println(Math.cos(Math.toRadians(90)));
    }
برنامه خروجی خواهد داد:

0.0
0.49999999999999994
1.0

1.0
0.8660254037844387
6.123233995736766E-17
که کاملاً با جداول سینوس و کسینوس مطابقت ندارد، تا حدی به دلیل اشتباهات در تبدیل درجه به رادیان.

توانمندی

برای افزایش یک عدد به توان، کلاس Math یک متد pow ارائه می دهد که دارای امضای زیر است:
static double pow(double a, double b)
این روش پارامتر "a" را به توان "b" افزایش می دهد. مثال ها:
public static void main(String[] args) {
        System.out.println(Math.pow(1,2)); // 1.0
        System.out.println(Math.pow(2,2)); // 4.0
        System.out.println(Math.pow(3,2)); // 9.0
        System.out.println(Math.pow(4,2)); // 16.0
        System.out.println(Math.pow(5,2)); // 25.0

        System.out.println(Math.pow(1,3)); // 1.0
        System.out.println(Math.pow(2,3)); // 8.0
        System.out.println(Math.pow(3,3)); // 27.0
        System.out.println(Math.pow(4,3)); // 64.0
        System.out.println(Math.pow(5,3)); // 125.0
    }

استخراج ریشه

کلاس Math روش هایی برای گرفتن ریشه های مربع و مکعب ارائه می دهد. روش های زیر مسئول این روش هستند:
  • استاتیک دو sqrt (دو a)
  • استاتیک دو برابر cbrt (دو a)
روش sqrt ریشه مربع و روش cbrt ریشه مکعب را می گیرد. مثال ها:
public static void main(String[] args) {
        System.out.println(Math.sqrt(4));   // 2.0
        System.out.println(Math.sqrt(9));   // 3.0
        System.out.println(Math.sqrt(16));  // 4.0

        System.out.println(Math.cbrt(8));   // 2.0
        System.out.println(Math.cbrt(27));  // 3.0
        System.out.println(Math.cbrt(125)); // 5.0
    }

تولید اعداد تصادفی

برای تولید اعداد تصادفی، کلاس Math روش تصادفی را ارائه می دهد. این روش یک عدد واقعی مثبت تصادفی (دوگانه) در محدوده 0.0 تا 1.0 ایجاد می کند. امضای متد به شکل زیر است:
public static double random()
بیایید به مثال ها نگاه کنیم:
public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
        System.out.println(Math.random());
    }
}
پس از اجرای روش اصلی، موارد زیر در کنسول نمایش داده می شود:

0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
با کمی دستکاری، می توانید از روش تصادفی کلاس Math برای به دست آوردن اعداد تصادفی صحیح در یک محدوده خاص استفاده کنید. در اینجا نمونه ای از تابعی است که دو آرگومان min و max را می گیرد و یک عدد صحیح تصادفی را برمی گرداند که در محدوده از min (شامل) تا حداکثر (شامل) قرار دارد:
static int randomInARange(int min, int max) {
    return  (int) (Math.random() * ((max - min) + 1)) + min;
}
بیایید یک متد Main بنویسیم که در آن روش randomInARange را آزمایش می کنیم:
public class MathExample {


    public static void main(String[] args) {
        // Карта, в которой мы будем хранить количество выпадений Howого-то числа
        Map<Integer, Integer> map = new TreeMap<>();

        // За 10000 операций
        for (int i = 0; i < 10000; i++) {

            // Сгенерируем рандомное число от -10 включительно до 10 включительно
            final Integer randomNumber = randomInARange(-10, 10);


            if (!map.containsKey(randomNumber)) {
                // Если карта еще не содержит "выпавшего случайного числа"
                // Положим его в карту с кол-вом выпадений = 1
                map.put(randomNumber, 1);
            } else {
                // Иначе, увеличим количество выпадений данного числа на 1
                map.put(randomNumber, map.get(randomNumber) + 1);
            }
        }

        // Выведем на экран содержимое карты в формате ключ=[meaning]
        for (Map.Entry<Integer, Integer> entry : map.entrySet()){
            System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
        }
    }

    static int randomInARange(int min, int max) {
        return  (int) (Math.random() * ((max - min) + 1)) + min;
    }
}
پس از اجرای روش اصلی، خروجی ممکن است به شکل زیر باشد:

-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]

Process finished with exit code 0

گرد کردن

برای گرد کردن اعداد در جاوا یکی از ابزارها متدهای کلاس Math است. به طور دقیق تر، روش های گرد، سقف و کف:
  • گرد طولانی ثابت (دو a)
  • دایره بین‌المللی استاتیک (float a)
  • طبقه دوبل استاتیک (دبل الف)
  • سقف دوتایی استاتیک (دبل الف)
روش گرد - به طور معمول برای افراد معمولی گرد می شود. اگر قسمت کسری یک عدد بزرگتر یا مساوی 0.5 باشد، عدد به بالا گرد می شود و در غیر این صورت به سمت پایین گرد می شود. روش کف همیشه، صرف نظر از مقادیر قسمت کسری، عدد را به سمت پایین گرد می کند (به سمت بی نهایت منفی). روش سقف، برعکس، صرف نظر از مقادیر قسمت کسری، اعداد را به سمت بالا گرد می کند (به سمت بی نهایت مثبت). بیایید به مثال ها نگاه کنیم:
public static void main(String[] args) {
    System.out.println(Math.round(1.3)); // 1
    System.out.println(Math.round(1.4)); // 1
    System.out.println(Math.round(1.5)); // 2
    System.out.println(Math.round(1.6)); // 2

    System.out.println(Math.floor(1.3)); // 1.0
    System.out.println(Math.floor(1.4)); // 1.0
    System.out.println(Math.floor(1.5)); // 1.0
    System.out.println(Math.floor(1.6)); // 1.0

    System.out.println(Math.ceil(1.3)); // 2.0
    System.out.println(Math.ceil(1.4)); // 2.0
    System.out.println(Math.ceil(1.5)); // 2.0
    System.out.println(Math.ceil(1.6)); // 2.0
}

نتیجه

در این مقاله نگاهی سطحی به کلاس ریاضی انداختیم. ما به نحوه استفاده از این کلاس نگاه کردیم:
  • محاسبه مقادیر مدولو؛
  • محاسبه مقادیر توابع مثلثاتی؛
  • افزایش اعداد به قدرت؛
  • استخراج ریشه های مربعی و مکعبی؛
  • تولید اعداد تصادفی؛
  • اعداد گرد
روش های جالب دیگری نیز در این کلاس وجود دارد. که در وب سایت اسناد رسمی یافت می شود . خوب، برای اولین آشنایی، روش های ذکر شده در بالا کاملاً کافی است.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION