Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách Sử Dụng Java Math.random

Phương thức Math.random() trong Java tạo ra một số giả ngẫu nhiên (pseudorandom) giữa 0.0 và 1.0. Số ngẫu nhiên kết quả có thể nhân để lấy phạm vi ngoài 0-1, và kết quả có thể là 0 nhưng luôn nhỏ hơn 1.


Khi lập trình, thường có tình huống cần tạo số ngẫu nhiên. Ví dụ, bạn điều hành một hãng du lịch. Bạn có thể muốn tạo số ngẫu nhiên thêm vào cuối đơn hàng khách hàng làm mã đặt chỗ. Hoặc tạo số ngẫu nhiên cho trò chơi đoán số.

Trong Java, có nhiều phương thức có thể dùng để tạo số ngẫu nhiên.

Trong hướng dẫn này, chúng ta sẽ đi qua phương thức phổ biến nhất để tạo số ngẫu nhiên trong Java: Math.random(). Chúng ta cũng sẽ thảo luận ví dụ từng bước cách dùng phương thức Math.random().

Thư Viện Math Trong Java

Lớp Math trong Java bao gồm nhiều tính năng dùng để thực hiện các hàm toán học trên số. Ví dụ, thư viện Math bao gồm phương thức round() dùng để làm tròn số và phương thức pow() dùng để tính lũy thừa.

Để dùng thư viện Math trong Java, trước tiên phải import nó vào mã. Có thể làm bằng câu lệnh import như sau:

import java.lang.Math;

Đối với hướng dẫn này, chúng ta sẽ dùng một phương thức từ thư viện Math: Math.random().

Phương Thức Math.random Trong Java

Phương thức Math.random() trong Java dùng để tạo số giả ngẫu nhiên, là số được tạo bằng công thức mô phỏng sự ngẫu nhiên. Số giả ngẫu nhiên sẽ lớn hơn hoặc bằng 0.0 và nhỏ hơn 1.0. Nói cách khác, số do Math.random tạo luôn nằm giữa 0 và 1, và là số dấu chấm động (floating-point).

Phương thức random trả về kiểu double ngẫu nhiên, là kiểu dữ liệu dùng để lưu giá trị dấu chấm động.

Ví Dụ Math.Random()

Ví dụ về phương thức Math.random():

import java.lang.Math; 
class Main { 
    public static void main(String[] args) { 
        double number = Math.random(); 
        System.out.println("Random number: " + number); 
    } 
}

Kết quả chạy chương trình:

Random number: 0.4728164736886452

Như bạn thấy, chương trình trả về số ngẫu nhiên giữa 0 và 1. Tuy nhiên, số này không hữu ích lắm ở dạng hiện tại. Nếu muốn tạo số ngẫu nhiên cho trò chơi đoán số, ví dụ, chúng ta không muốn số thập phân.

Để tạo số nguyên với bộ sinh số giả ngẫu nhiên, có thể nhân số ngẫu nhiên với số khác và làm tròn đến số nguyên gần nhất. Ví dụ, muốn tạo số ngẫu nhiên giữa 1 và 10. Có thể làm như sau:

class Main { 
    public static void main(String[] args) { 
        int number = (int)(Math.random() * 10); 
        System.out.println("Random number: " + number); 
    } 
}

Kết quả chương trình sau khi chạy 3 lần:

4

6

2

Như bạn thấy, chương trình trả về số nguyên ngẫu nhiên.

Phân tích mã: Đầu tiên, khai báo lớp Main chứa mã chương trình.

Sau đó dùng phương thức Math.random() tạo số ngẫu nhiên, nhân số đó với 10. Sau khi nhân kết quả với 10, chuyển đổi nó sang số nguyên, làm tròn đến hàng thập phân gần nhất và cho số nguyên.

Cuối cùng, in thông báo "Random number: " ra bảng điều khiển, theo sau là số ngẫu nhiên chương trình tạo.

Nếu muốn tạo số lớn hơn, có thể thay phần * 10 bằng số khác. Ví dụ, muốn tạo số giữa 1 và 1000. Có thể thay * 10 bằng * 1000 như sau:

class Main { 
    public static void main(String[] args) { 
        int number = (int)(Math.random() * 1000); 
        System.out.println("Random number: " + number); 
    } 
}

Sau khi thực thi chương trình 3 lần, kết quả trả về:

181

914

939

Java Math.random Giữa Hai Số

Phương thức Math.random() không chấp nhận bất kỳ đối số nào, nghĩa là không có cách nào ảnh hưởng đến số được tạo bởi phương thức. Tuy nhiên, chúng ta có thể tạo phương thức riêng cho phép tạo số trong một phạm vi cụ thể.

Ví dụ, giả sử chúng ta xây dựng ứng dụng tạo số ngẫu nhiên dùng để phân biệt đơn hàng khách hàng trên du thuyền. Các số này sẽ thêm vào cuối tên khách hàng.

Số muốn tạo nên nằm giữa 200 và 500. Để tạo số này và chuẩn bị mã tham chiếu đơn hàng, có thể dùng mã sau:

class Main { 
    public static int generateTicketNumber(int min, int max) { 
        int range = (max - min) + 1; 
        return (int)(Math.random() * range) + min; 
    } 
    public static void main(String args[]) { 
        String customerName = "JohnMcIver"; 
        int randomNumber = generateTicketNumber(200, 500); 
        System.out.println(customerName + randomNumber); 
    } 
}

Kết quả chạy chương trình:

JohnMcIver321

Trong chương trình, tạo số ngẫu nhiên trong phạm vi 200 và 500. Sau đó nối số đó vào tên khách hàng và in kết quả ra bảng điều khiển.

Phân tích cách mã hoạt động:

  1. Khai báo phương thức generateTicketNumber() chấp nhận hai tham số: min và max.
  2. generateTicketNumber() dùng min và max để tạo số ngẫu nhiên trong phạm vi hai số đó với Math.random().
  3. Khi chương trình chính chạy, biến customerName được khai báo và gán giá trị John McIver.
  4. Gọi phương thức generateTicketNumber() với tham số 200 và 500, tương ứng với giá trị min và max trong phạm vi kết quả. Kết quả gán cho biến randomNumber.
  5. Tên khách hàng và số ngẫu nhiên được nối (ghép) lại và in ra bảng điều khiển.

Kết Luận

Phương thức Math.random() trong Java dùng để tạo số giả ngẫu nhiên. Math.random() tạo số giữa 0 và 1, sau đó có thể thao tác để nằm trong phạm vi cụ thể.

Hướng dẫn này đã thảo luận cơ bản về thư viện Math trong Java và cách dùng phương thức Math.random() tạo số ngẫu nhiên. Ngoài ra, hướng dẫn khám phá cách tạo số ngẫu nhiên giữa phạm vi hai số dùng Math.random() và phương thức tùy chỉnh.

Bây giờ bạn đã sẵn sàng bắt đầu tạo số ngẫu nhiên trong Java như chuyên gia!