JavaRush /مدونة جافا /Random-AR /كيفية الأس في جافا

كيفية الأس في جافا

نشرت في المجموعة
مرحبا بالعالم! يعد البحث عن شيء ما على Google أو طلب المساعدة في المنتدى أمرًا شائعًا حتى بالنسبة للمبرمجين ذوي الخبرة. ولكن هناك موضوعات في مجال التطوير أساسية وبسيطة جدًا لدرجة أنه حتى المبتدئ الأخضر يجب أن يعرفها. وهنا واحد من تلك المواضيع. اليوم سنتحدث عن كيفية تنفيذ الأسي في جافا. كيفية عمل الأس في جافا - 1لنتخيل للحظة أنه تم تكليفك بمهمة: العثور على رقم بدرجة معينة. يبدو الأمر بسيطًا للغاية، ولكن كيفية تنفيذ الحل؟ دعونا نلقي نظرة على الطريقة الأكثر شيوعا والعديد من البدائل. وقبل أن "نغوص" في الحلول، دعونا نتذكر أولًا معنى رفع الرقم إلى قوة: كيفية عمل الأس في جافا - 2الرفع إلى قوة هو إجراء يتم فيه ضرب رقم واحد في نفسه عدة مرات. العدد الذي يتم ضربه يسمى الأساس، وعدد مرات ضربه يسمى الأس. حسنًا، نتيجة الضرب الذاتي للأساس تسمى الأسي. على سبيل المثال، الرقم 8 هو 2 مرفوعًا للقوة الثالثة، حيث أن 2x2x2=8. رفع العدد إلى القوة الثانية يدل على أننا نجعله عاملاً مرتين، والقاعدة هي أن هذه القوة تسمى القوة المربعة. أي 4 تربيع = 4x4 = 16. لذا، قمنا بتحديث ذاكرتنا، وننتقل الآن مباشرةً إلى طرق استخدام pow في Java - وهي طريقة للأس.
  1. الرياضيات الأسرى

    أسهل طريقة لحل هذه المشكلة هي استخدام فئة الرياضيات. هذا هو الحل الذي ستستخدمه في معظم الحالات.

    Как выполнить возведение в степень в Java - 3

    يحتوي فصل الرياضيات على طرق تتعلق بعلم المثلثات والهندسة وجوانب أخرى من الرياضيات. يتم فيه تنفيذ الأساليب على أنها ثابتة، بحيث يمكنك الاتصال بها على الفور من خلال اسم فئة الرياضيات دون إنشاء كائن فئة.

    كيف يبدو الأس:

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    كان علينا استخدام نوع cast (int)، نظرًا لأن هذه الطريقة لفئة Math تُرجع قيمة من النوع double (الوسائط مزدوجة أيضًا، ولكن يتم استخدام نوع ضمني cast هناك).

    والآن - مكافأة: خيارات إضافية.

  2. قيمة مربع الرقم

    ربما لنبدأ بأبسط شيء.

    هذه هي الطريقة التي يتم بها كتابة طريقة التربيع:

    public static int pow(int value){
       return value*value;
    }

    اتصل في الرئيسي:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    هذا كل شيء - لا يوجد شيء معقد أو غير ضروري.

  3. الرقم إلى السلطة

    لكن العدد التربيعي ليس كل ما نحتاجه. في أغلب الأحيان، سنحتاج في عملنا إلى رقم إلى حد ما، لذا فإن ما يلي هو إصدار أكثر تعقيدًا بعض الشيء، ولكن مع قيمة Java pow مخصصة:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    الخوارزمية بسيطة للغاية: نقوم بتعيين نتيجة نقطة البداية، ثم نضربها في القيمة لدينا عدة مرات مثل تشغيل الحلقة مع powValue (عدد powValue مرات)

  4. العودية

    ستكون الطريقة التالية أكثر غرابة بعض الشيء، ولكنها ليست أقل روعة.

    Как выполнить возведение в степень в Java - 4

    العودية هي ميزة تسمح للطريقة باستدعاء نفسها. في جافا، مثل هذه الآلية موجودة، وبالتالي تسمى هذه الأساليب العودية.

    يمكن حل العديد من المشكلات الخوارزمية، إن لم يكن كلها، بشكل متكرر. وهذا أيضًا لن يكون استثناءً، لذا دعونا نلقي نظرة على كيفية رفع رقم إلى قوة معينة بطريقة متكررة:

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    وكما نرى فإن لدينا حالتين:

    1. شرط الخروج من العودية، أو بمعنى آخر، عندما تصل قيمة درجتنا إلى واحد، سنبدأ في التراجع.
    2. الآلية نفسها لضرب القيمة نتيجة استدعاء نفس الطريقة، ولكن مع powValue - 1.

    حسنًا، حان الوقت الآن لإلقاء نظرة على الأساليب الأكثر كسلاً، وهي الأساليب "الخارجة عن الصندوق".

  5. عدد صحيح كبير

    الغرض الرئيسي من فئة BigInteger هو تخزين الأعداد الصحيحة ذات الحجم التعسفي، ولكن في الوقت نفسه لديها طرق حسابية مختلفة تسمح لك بالعمل مع هذه الأرقام الضخمة (أو ليست ضخمة جدًا).

    Как выполнить возведение в степень в Java - 5

    يمكنك قراءة المزيد عن BigInteger في هذه المقالة .

    إذًا كيف سيبدو الأسي باستخدام BigInteger في Java؟

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    الأمر بسيط جدًا وبدون أي مشاكل، أليس كذلك؟

حسنا، هذا كل شيء لهذا اليوم! الآن أنت تعرف عن مجموعة متنوعة من الطرق الأسية. أوافق، لم يكن هذا موضوعا صعبا :)
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION