CodeGym /בלוג Java /Random-HE /שימוש בשיטת Math.pow() ב-Java
John Squirrels
רָמָה
San Francisco

שימוש בשיטת Math.pow() ב-Java

פורסם בקבוצה
שפת Java מצוידת בספרייה מקיפה לפונקציות ופעולות מתמטיות. זה נקרא המחלקה "Math", והוא נמצא בחבילת java.lang . ספריית המתמטיקה כוללת שיטות לפעולות מספריות בסיסיות, טריגונומטריה, מציאת מינימום-מקס, יצירת מספרים אקראיים ופעולות לוגריתמיות. במדריך של היום, נתמקד בשיטת Math.pow() המשמשת לחישוב חזקות של מספרים באמצעות בסיס ומעריך. בואו נתחיל. ניתן לכתוב מתמטית את הביטוי 'חזק n' של a כ- n . אנו יכולים להגדיר את המונחים בביטויים כדלקמן. a - base n - מעריך הבה ניקח בחשבון את המעריך. אנו יכולים לזהות אותו כמספר הפעמים שבהן חוזרת פעולת הכפל. הבסיס הוא המספר שמוכפל בעצמו. שימוש בשיטת Math.pow() ב-Java - 1הבה ניצור כעת שיטת Java פשוטה לחישוב כוחו של מספר. שימו לב שבדוגמה הבאה, אנו מעבירים שני ארגומנטים למתודה powerFunction() שהם הבסיס והמעריך, בהתאמה.
public class Main {

   public static void main(String[] args) {
       int result = powerFunction(2, 5);
       System.out.println("2 raised to the power of 5 = " + result);
   }

   static int powerFunction(int base, int exponent) {
       int result = 1;
       for (int i = 0; i < exponent; i++) {
           result = base * result;
       }
       return result;
   }
}
אם נריץ את הקוד לדוגמה שלמעלה, הוא יחזיר 32. אתה אולי מדמיין למה אנחנו לא יכולים לכתוב base^exponent. אנחנו לא יכולים לעשות את זה כי ל-Java אין אופרטור אקספוננציה שאנחנו יכולים להשתמש בו בשורת קוד אחת. בהתחשב בקוד לעיל, ברור שהיינו צריכים להשקיע לא מעט זמן בכתיבת שיטה זו. יתרה מכך, אם אנו מתכוונים לחשב הספקים גבוהים, השיטה ייקח זמן לא מבוטל כדי להשלים את החישובים הללו מכיוון שאנו משתמשים בלולאות. בנוסף לכך, לולאות ימנעו מאיתנו לבצע חישובי הספק עם אקספוננטים שברים. ולשיטה זו אין מורכבות חישובית טובה, כי היא אינה נוחה במיוחד מכיוון שיש יותר מקום לאופטימיזציה. בהתחשב באיזו תדירות אקספונציה ופעולות מתמטיות אחרות משמשות על ידי מתכנתים, בזמנו מפתחי Java יצרו ספרייה בשם 'מתמטיקה', המוקדשת להקל על פעולות מתמטיות. לכן, במקום לכתוב פונקציית כוח מאפס, נוכל לנצל את הספרייה הזו הכלולה בחבילת Java Lang.

מהי שיטת Math.pow וכיצד אנו משתמשים בה?

ניתן למצוא את Math.pow בחבילת java.lang כשיטה של ​​ספריית Math. הוא משמש לחישוב כוחם של מספרים, הן מספרים שלמים והן כפולים. בואו נשקול את התחביר שלו.
public static double pow(double base, double exponent)
כפי שאנו יכולים לראות בתחביר, שיטת java.lang.Math.pow() לוקחת שני ארגומנטים. הראשון הוא הבסיס והשני הוא המעריך. זה יחזיר מעריך בסיס בתור הפלט שלו. בוא נראה איך אנחנו יכולים לקרוא לזה.

העלאת מספר לעוצמה ב-Java באמצעות Math.pow

בוא נמצא את הערך של 5 4 באמצעות Math.pow .
import java.lang.Math;
public class MyClass{
    public static void main(String []args){
       double answer = Math.pow(5, 4);
// java.lang.Math.pow() method

       System.out.println("5 raised to the power of 4 = " + answer);
    }
}
הפלט הוא 625.0. כפי שאתה יכול לראות, זה ערך כפול. אם הנקודה העשרונית מטרידה אותך, נוכל להיפטר ממנה בקלות על ידי הטלת המספר למספר שלם באופן הבא. שימו לב שאנו משנים את השורה הראשונה בתוך השיטה הראשית.
int answer = (int) Math.pow(5, 4);
כעת התוצאה היא 625. בוא נשתמש במספרים שברים גם לבסיס וגם למעריך וננסה לקבל תשובה. בוא נראה מה הערך של 1.25 4.5 .
import java.lang.Math;

public class MyClass {

   public static void main(String[] args) {
       double answer = Math.pow(1.25, 4.5);
// java.lang.Math.pow() method

       System.out.println("1.25 raised to the power of 4.5 = " + answer);
   }
}
זה יוציא 2.729575167846423. אם אתה משתמש במחשבון, תראה שהוא מחזיר את אותה תשובה. בואו נעבור על דוגמה נוספת לפני שנעבור לסעיף הבא. נעלה מספר לחזקה שלילית ונשווה את התוצאות. עבור דוגמה זו, נבחר 4 כבסיס ו-2 כמעריך.
import java.lang.Math;

public class MyClass{

     public static void main(String []args){
        double answer = Math.pow(4, -2);
// java.lang.Math.pow() method

        System.out.println(answer);
     }
}
אנו מקבלים את הפלט 0.0625.

דוגמה מהירה: איך לעגל את התשובה שלך

נגיד, אנחנו צריכים למצוא את הערך של 1.25 4.5 . התשובה היא 2.729575167846423. לעתים קרובות יש צורך לעגל את התוצאה. בואו ננסה לקבל תשובה מדויקת במקום העשרוני הרביעי. איך לעשות את זה? מה אם נדרוש רק את 4 המקומות העשרוניים הראשונים? אנחנו יכולים להשתמש בשיטת java.lang.Math.round בשביל זה. עם זאת, כאשר Math.round מעגל את הערך למספר השלם הקרוב ביותר, נצטרך להכפיל אותו במספר המקומות העשרוניים ולאחר מכן לעגל ולחלק שוב.
import java.lang.Math;

public class MyClass{

     public static void main(String []args){
        double answer = Math.pow(1.25, 4.5);
        answer = Math.round(answer*100.0)/100.0;

        System.out.println(answer);
     }

}
הפלט הוא 2.73.

כיצד להשתמש כראוי ב- Math.pow

כאשר אנו משתמשים בשיטת java.lang.Math.pow , יש כמה דברים שכדאי לזכור.
  1. אם פרמטר המעריך הוא אפס, הפלט יהיה 1.0. הסיבה לכך היא שהחזקה של אפס עבור כל מספר מוגדרת כאחד.
  2. אם הפרמטר המעריך הוא אחד, הפלט יהיה פרמטר הבסיס. הסיבה לכך היא שאם מעלים מספר כלשהו בחזקת 1, התוצאה זהה לבסיס.
  3. אם הבסיס הוא אפס שלילי/חיובי והפרמטר המעריך הוא מספר שלילי, התוצאה היא אינסוף. (אפסים שליליים יכולים להתרחש עקב עיגול המספרים בין אפס למספר השלילי שאינו אפס הקטן ביותר שניתן לייצוג).
  4. אם הפרמטר המעריך הוא NaN, הפלט יהיה גם NaN.
בואו נשקול מקרה אחד שבו המצב השלישי הזה יכול לקרות.
import java.lang.Math;

public class MyClass{

     public static void main(String []args){
        double base = 5;
        double exponent = Double.NaN;

        double answer = Math.pow(base, exponent);

        System.out.println(answer);
     }
}
זה יוציא NaN. לכן, אם הקוד שלך מוביל ל-NaN, יהיה זה חכם לבדוק אם הארגומנט המעריך הוא NaN. במקרה שאתה תוהה מה זה NaN, זה אומר 'לא מספר' ומציין שהערך לא הוגדר. אנו מאמינים שכולכם מוכנים כעת להמשיך ולהכניס את lang.Math.pow() לשימוש ביישומים שלכם.

סיכום

שיטת java.lang.Math.pow() היא דרך מצוינת למצוא בקלות את העוצמה של מספרים שונים, הן מספרים שלמים והן ערכי שברים. בניגוד לשיטה שאתה עשוי לכתוב בעצמך, היא מותאמת מאוד ומתאימה היטב למגוון יישומים קריטיים לזמן. למרות שהוא מוציא את כל התוצאות כפולות, אנחנו תמיד יכולים להטיל את הערך למספר שלם כמו שעשינו בדוגמה. יתרה מכך, לנוחיותנו, ספריית java.lang.Math מספקת שיטות לעגל את התוצאה למספר המועדף של מקומות עשרוניים.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION