JavaRush /مدونة جافا /Random-AR /فئة جافا الرياضيات وأساليبها

فئة جافا الرياضيات وأساليبها

نشرت في المجموعة
في هذه المقالة، سنقدم لمحة موجزة عن فئة الرياضيات في جافا. دعونا نتحدث عن أساليب هذا الفصل وكيفية استخدامها. توجد فئة Math في الحزمة java.lang وتوفر مجموعة من الطرق الثابتة لإجراء عدد من العمليات الحسابية المختلفة. فيما يلي أمثلة على العمليات الحسابية التي قد يكون فصل الرياضيات مفيدًا لها:
  • حساب القيم المطلقة (قيم الوحدة)
  • حساب قيم الدوال المثلثية (جيب التمام، جيب التمام، الخ)
  • الارتفاع بدرجات مختلفة
  • - استخراج الجذور بدرجات مختلفة
  • توليد أرقام عشوائية
  • التقريب
  • إلخ.
سنحاول أدناه إلقاء نظرة على كيفية مساعدة فئة Java Math في حل المشكلات المذكورة أعلاه. فئة Java Math وطرقها - 1لنبدأ في تحليل الفصل باستخدام الطرق التي تسمح لك بحساب وحدة القيمة. طريقة القيمة المطلقة هي المسؤولة عن هذا. هذه الطريقة مثقلة وفئة الرياضيات بها الاختلافات التالية:
  • القيمة المطلقة المزدوجة الثابتة (مزدوجة أ)
  • القيمة المطلقة العائمة الثابتة (تعويم أ)
  • ثابت القيمة المطلقة (كثافة العمليات أ)
  • القيمة المطلقة الطويلة الثابتة (طويلة أ)
مثال الاستخدام:
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
    }

حساب قيم الدوال المثلثية

تتيح لك فئة الرياضيات حساب الدوال المثلثية المختلفة - جيب التمام، وجيب التمام، والظل، وما إلى ذلك. ويمكن العثور على قائمة كاملة بالطرق على موقع التوثيق الرسمي . وفيما يلي قائمة بهذه الأساليب:
  • الخطيئة المزدوجة الثابتة (مزدوج أ)
  • كوس مزدوج ثابت (مزدوج أ)
  • تان مزدوج ثابت (مزدوج أ)
  • آسين مزدوج ثابت (مزدوج أ)
  • أكوس مزدوجة ثابتة (مزدوج أ)
  • آتان مزدوج ثابت (مزدوج أ)
طرق الحساب: الجيب، وجيب التمام، والظل، وأركسين، وأركوسين، وظل قوسي. تحسب كل طريقة قيمة للزاوية `a`. يتم تمرير هذه المعلمة إلى كل طريقة ويتم قياسها في كل حالة بالراديان (وليس بالدرجات، كما اعتدنا). هناك خبران هنا، جيد وسيئ. لنبدأ بالخير. تحتوي فئة الرياضيات على طرق لتحويل الراديان إلى درجات والدرجات إلى راديان:
  • ثابت مزدوج إلى الدرجات (أنجراد مزدوج)
  • ثابت مزدوج إلى راديان (أنغديج مزدوج)
هنا ستقوم طريقة toDegrees بتحويل زاوية angrad، المقاسة بالراديان، إلى درجات. على العكس من ذلك، تقوم طريقة toRadians بتحويل الزاوية angdeg، المقاسة بالدرجات، إلى راديان. الخبر السيئ هو أن هذا يحدث مع بعض الأخطاء. فيما يلي مثال لحساب الجيوب وجيب التمام:
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
    }

استخراج الجذر

يوفر فصل الرياضيات طرقًا لأخذ الجذور التربيعية والمكعبية. الطرق التالية مسؤولة عن هذا الإجراء:
  • sqrt مزدوج ثابت (مزدوج أ)
  • ثابت مزدوج cbrt (مزدوج أ)
تأخذ الطريقة 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
    }

توليد أرقام عشوائية

لتوليد أرقام عشوائية، توفر فئة الرياضيات الطريقة العشوائية. تقوم هذه الطريقة بإنشاء رقم حقيقي (مزدوج) موجب عشوائي في النطاق من 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
مع القليل من التلاعب، يمكنك استخدام الطريقة العشوائية لفئة الرياضيات للحصول على أرقام عشوائية صحيحة تقع في نطاق معين. فيما يلي مثال لدالة تأخذ وسيطتين min وmax وترجع عددًا صحيحًا عشوائيًا يقع في النطاق من min (شامل) إلى max (شامل):
static int randomInARange(int min, int max) {
    return  (int) (Math.random() * ((max - min) + 1)) + min;
}
لنكتب طريقة رئيسية سنختبر فيها طريقة 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

التقريب

لتقريب الأرقام في Java، إحدى الأدوات هي طرق فئة Math. بتعبير أدق، الطرق الدائرية والسقفية والأرضية:
  • جولة طويلة ثابتة (مزدوج أ)
  • جولة int ثابتة (تعويم أ)
  • أرضية مزدوجة ثابتة (مزدوج أ)
  • سقف مزدوج ثابت (مزدوج أ)
الطريقة الدائرية - تدور كالمعتاد للشخص العادي. إذا كان الجزء الكسري من الرقم أكبر من أو يساوي 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
}

خاتمة

في هذه المقالة، ألقينا نظرة سطحية على فصل الرياضيات. لقد نظرنا في كيفية استخدام هذا الفصل يمكنك:
  • حساب القيم modolo؛
  • حساب قيم الدوال المثلثية؛
  • رفع الأرقام إلى القوى؛
  • استخراج الجذور المربعة والمكعبية.
  • توليد أرقام عشوائية.
  • أرقام مستديرة.
هناك الكثير من الطرق الأخرى المثيرة للاهتمام في هذا الفصل. والتي يمكن العثور عليها على موقع التوثيق الرسمي . حسنا، للتعارف الأول، الأساليب المذكورة أعلاه كافية تماما.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION