CodeGym /Blog Java /Ngẫu nhiên /Sử dụng Phương thức Math.pow() trong Java

Sử dụng Phương thức Math.pow() trong Java

Xuất bản trong nhóm
Ngôn ngữ Java được trang bị một thư viện toàn diện cho các hàm và phép toán. Nó được gọi là lớp "Math" và nằm trong gói java.lang . Thư viện Math bao gồm các phương pháp cho các phép toán số cơ bản, lượng giác, tìm cực tiểu, tạo số ngẫu nhiên và phép toán logarit. Trong hướng dẫn hôm nay, chúng ta sẽ tập trung vào phương thức Math.pow() , được sử dụng để tính lũy thừa của các số bằng cách sử dụng cơ số và số mũ. Bắt đầu nào. Biểu thức 'lũy thừa n của a' có thể được viết dưới dạng toán học là n. Chúng ta có thể định nghĩa các thuật ngữ trong các biểu thức như sau. a - cơ số n - số mũ Hãy xem xét số mũ. Chúng ta có thể xác định nó là số lần một phép toán nhân được lặp lại. Cơ sở là số được nhân với chính nó. Sử dụng Phương thức Math.pow() trong Java - 1Bây giờ chúng ta hãy tạo một phương thức Java đơn giản để tính lũy thừa của một số. Xin lưu ý rằng trong ví dụ sau, chúng ta đang chuyển hai đối số vào phương thức powerFunction() , tương ứng là cơ số và số mũ.

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;
   }
}
Nếu chúng ta chạy mã ví dụ trên, nó sẽ trả về 32. Bạn có thể đang tưởng tượng tại sao chúng ta không thể viết cơ số^số mũ một cách đơn giản. Chúng tôi không thể làm điều đó vì Java không có toán tử lũy thừa mà chúng tôi có thể sử dụng trong một dòng mã. Xem xét đoạn mã trên, rõ ràng là chúng ta đã phải dành khá nhiều thời gian để viết phương thức này. Hơn nữa, nếu chúng ta tính toán lũy thừa cao, thì phương pháp này sẽ mất một lượng thời gian đáng kể để hoàn thành các phép tính này vì chúng ta đang sử dụng vòng lặp for. Ngoài ra, các vòng lặp sẽ ngăn chúng ta thực hiện các phép tính lũy thừa với số mũ phân số. Và phương pháp này không có độ phức tạp tính toán tốt, bởi vì không thuận lợi lắm vì có nhiều chỗ để tối ưu hóa. Xem xét mức độ phổ biến của lũy thừa và các hoạt động toán học khác được sử dụng bởi các lập trình viên, ngày trước, các nhà phát triển Java đã tạo ra một thư viện có tên là 'Math', được dành riêng để tạo điều kiện thuận lợi cho các hoạt động toán học. Do đó, thay vì viết một hàm nguồn từ đầu, chúng ta có thể tận dụng thư viện này được bao gồm trong gói Java Lang.

Phương thức Math.pow là gì và chúng ta sử dụng nó như thế nào?

Math.pow có thể được tìm thấy trong gói java.lang như một phương thức của thư viện Math. Nó được sử dụng để tính lũy thừa của các số, cả số nguyên cũng như số nhân đôi. Hãy xem xét cú pháp của nó.

public static double pow(double base, double exponent)
Như chúng ta có thể thấy trong cú pháp, phương thức java.lang.Math.pow() nhận hai đối số. Cái đầu tiên là cơ số và cái thứ hai là số mũ. Điều này sẽ trả về số mũ cơ sở làm đầu ra của nó. Hãy xem làm thế nào chúng ta có thể gọi nó.

Nâng số lên lũy thừa trong Java bằng Math.pow

Hãy tìm giá trị của 5 4 bằng 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);
    }    
}
Đầu ra là 625.0. Như bạn có thể thấy, đó là một giá trị kép. Nếu bạn cảm thấy phiền vì dấu thập phân, chúng ta có thể dễ dàng loại bỏ nó bằng cách chuyển số thành số nguyên như sau. Lưu ý rằng chúng tôi đang thay đổi dòng đầu tiên bên trong phương thức chính.

 int answer = (int) Math.pow(5, 4);
Bây giờ kết quả là 625. Hãy sử dụng các số phân số cho cả cơ số và số mũ và cố gắng tìm ra câu trả lời. Hãy xem giá trị của 1,25 4,5 là bao nhiêu.

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);
   }
}
Điều này sẽ xuất ra 2,729575167846423. Nếu bạn sử dụng máy tính, bạn sẽ thấy rằng nó trả về kết quả tương tự. Hãy xem qua một ví dụ nữa trước khi chúng ta chuyển sang phần tiếp theo. Chúng ta sẽ nâng một số lên lũy thừa âm và so sánh kết quả. Đối với ví dụ này, chúng tôi sẽ chọn 4 làm cơ số và -2 làm số mũ.

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);
     }    
}
Chúng tôi nhận được đầu ra 0,0625.

Ví dụ nhanh: Cách làm tròn câu trả lời của bạn

Giả sử, chúng ta cần tìm giá trị của 1,25 4,5 . Câu trả lời là 2,729575167846423. Khá thường xuyên nó là cần thiết để làm tròn kết quả. Hãy cố gắng có được câu trả lời chính xác đến chữ số thập phân thứ tư. Làm thế nào để làm nó? Nếu chúng ta chỉ yêu cầu 4 chữ số thập phân đầu tiên thì sao? Chúng ta có thể sử dụng phương thức java.lang.Math.round cho việc đó. Tuy nhiên, khi Math.round làm tròn giá trị thành số nguyên gần nhất, chúng ta sẽ phải nhân nó với số vị trí thập phân, sau đó làm tròn và chia lại.

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);
     }
     
}
Đầu ra là 2,73.

Cách sử dụng Math.pow đúng cách

Khi chúng ta sử dụng phương thức java.lang.Math.pow , có một số điều cần lưu ý.
  1. Nếu tham số số mũ bằng 0, đầu ra sẽ là 1.0. Điều này là do lũy thừa của 0 đối với bất kỳ số nào được định nghĩa là một.
  2. Nếu tham số mũ là một, đầu ra sẽ là tham số cơ sở. Điều này là do nếu bạn nâng bất kỳ số nào lên lũy thừa 1, thì kết quả sẽ giống với cơ số.
  3. Nếu cơ số là số 0 âm/dương và tham số số mũ là số âm, thì kết quả là Vô cực. (Các số 0 âm có thể xảy ra do làm tròn số giữa 0 và số khác 0 âm có thể biểu thị nhỏ nhất).
  4. Nếu tham số số mũ là NaN, đầu ra cũng sẽ là NaN.
Hãy xem xét một trường hợp mà tình huống thứ 3 này có thể xảy ra.

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);
     }     
}
Điều này sẽ xuất ra NaN. Vì vậy, nếu mã của bạn dẫn đến NaN, bạn nên kiểm tra xem đối số số mũ có phải là NaN hay không. Trong trường hợp bạn đang thắc mắc NaN là gì, thì nó có nghĩa là 'không phải là số' và cho biết rằng giá trị chưa được xác định. Chúng tôi tin rằng bạn hiện đã sẵn sàng tiếp tục và đưa lang.Math.pow() vào sử dụng trong các ứng dụng của mình.

Phần kết luận

Phương thức java.lang.Math.pow() là một cách tuyệt vời để dễ dàng tìm lũy thừa của các số khác nhau, cả số nguyên cũng như giá trị phân số. Không giống như một phương pháp mà bạn có thể tự viết, nó được tối ưu hóa cao và rất phù hợp cho nhiều ứng dụng quan trọng về thời gian. Mặc dù nó xuất ra tất cả các kết quả dưới dạng nhân đôi, nhưng chúng ta luôn có thể chuyển giá trị thành một số nguyên như chúng ta đã làm trong ví dụ. Hơn nữa, để thuận tiện cho chúng ta, thư viện java.lang.Math cung cấp các phương thức để làm tròn kết quả tới số vị trí thập phân ưa thích.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION