Home Thủ Thuật Cách tạo random một số ngẫu nhiên trong Java

Cách tạo random một số ngẫu nhiên trong Java

by Auspeed

Các trò chơi quay số ngẫu nhiên luôn xuất hiện rất nhiều trong cuộc sống. Phổ biến nhất mà ai cũng có thể nhận ra đó là quay thưởng kết quả xo so mien nam thu 5. Đây là một trò chơi khá hay khi sự hồi hộp chờ đợi kết quả mang lại cho người chơi cảm giác hứng thú kỳ lạ. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách để viết một ứng dụng quay thưởng ngẫu nhiên tương tự như trên bằng cách sử dụng các hàm random trong Math class và Random class mà Java đã hỗ trợ sẵn.

Random số ngẫu nhiên sử dụng Math class

Math class chứa một static Math.random() method dùng để random một số ngẫu nhiên có kiểu dữ liệu là double.

Hàm random() trả về một giá trị double có giá trị dương, lớn hơn hoặc bằng 0,0 và nhỏ hơn 1,0. Khi bạn gọi Math.random(), một java.util.Random sẽ được khởi tạo và sử dụng.

Bạn có thể sử dụng phương thức Math.random() có hoặc không truyền tham số. Nếu bạn cung cấp các tham số, phương pháp sẽ tạo ra các số ngẫu nhiên trong các tham số đã cho.

Phương thức randomNumber() sử dụng Math.random() để nhận lấy một giá trị ngẫu nhiên trong khoảng 0.0 đến 1.0

Random số ngẫu nhiên trong một khoảng giá trị

Để tạo các số ngẫu nhiên giữa một phạm vi nhất định, bạn cần chỉ định phạm vi đó. Một biểu thức tiêu chuẩn để đạt được điều này là:

Chúng ta cùng phân tích biểu thức trên:

  • Math.random() * ( max – min ) trả về giá trị trong khoảng [0, max – min), trong đó giá trị tối đa bị loại bỏ do giá trị lớn nhất mà Math.random trả về bé hơn 1.0. Cho ví dụ nếu bạn muốn random số trong khoảng [5, 10] theo công thức trên chúng ta có Math.random() * (10 – 5) thì kết quả sẽ trong khoảng [0, 5), không bao gồm 5.
  • Tiếp theo chúng ta cần dịch giá trị bên dưới từ 0 lên tối thiểu là min bằng cách cộng thêm một khoảng giá trị min vào. Math.random() * ( max – min ) + min
  • Nhưng với biểu thức trên chúng ta vẫn chỉ được khoảng giá trị [0, max). Do vậy chúng ta cần thêm 1 vào tham số (max – min) thành (max – min + 1). double x = (Math.random()*((max-min)+1))+min

Chúng ta có thể random một số int bằng cách convert double sang int.

Giả sử mình muốn khoảng giá trị từ 5 đến 10, mình muốn random ra số 10 thì chúng ta có biểu thức sau: 10 = (Math.randon) * (10 – 5 + 1) + 5 => Math.random() = 5/6. Từ đó chúng ta có thể suy ra rằng giá trị 10.0 <= max < 11.0. Khi chúng ta chuyển từ double sang int thì kết quả có thể đạt được [5 10] như mong muốn.

Với cách này bạn hoàn toàn có thể tạo được một chương trình quay thưởng kết quả xổ số hàng ngày. Ví dụ với giải 8 xo so an giang hom nay thì bạn có thể cho chạy trong khoảng giá trị từ 00 đến 99.

Random số ngẫu nhiên sử dụng Random class

Bạn có thể sử dụng lớp java.util.Random để tạo các số ngẫu nhiên thuộc các kiểu khác nhau, chẳng hạn như int, float, double, long và boolean. Để tạo số ngẫu nhiên, trước tiên, hãy tạo một Random object và sau đó gọi một trong các phương thức tạo giá trị ngẫu nhiên, chẳng hạn như nextInt (), nextDouble () hoặc nextLong ().

Gọi một trong các phương thức sau của Random object sẽ trả về giá trị:

  • nextInt(upperbound) sẽ trả về một số nguyên khoảng [0, upperbound – 1]
  • nextFloat() trả về 0.0 đến 1.0
  • nextDouble() trả về 0.0 đến 1.0

Random số ngẫu nhiên sử dụng ThreadLocalRandom

Để tạo số ngẫu nhiên bằng lớp ThreadLocalRandom, hãy làm theo các bước bên dưới:

  • Import the class ThreadLocalRandom class
  • Sử dụng các method:
  • ThreadLocalRandom.current().nextInt() để random số nguyên
  • ThreadLocalRandom.current().nextDouble() để random số kiểu double
  • ThreadLocalRandom.current().nextBoolean() để random số float

Để tạo các chương trình ngẫu nhiên trong Java cũng không khó khăn như bạn nghĩ. Chúc các bạn thực hiện thành công sau những hướng dẫn của chúng tôi.

Leave a Comment