CodeGym/Blog Java/Ngẫu nhiên/Lớp Java.util.Random

Lớp Java.util.Random

Xuất bản trong nhóm

Lớp java.util.Random trong Java là gì?

Lớp java.util.Random được sử dụng để tạo các số giả ngẫu nhiên. Các phương thức do lớp này triển khai được sử dụng để tạo các kiểu dữ liệu ngẫu nhiên khác nhau như int, double và float. Vì vậy, có hai loại số ngẫu nhiên chính, số ngẫu nhiên theo thống kêsố giả ngẫu nhiên . Các số ngẫu nhiên thống kê (như các số ngẫu nhiên đơn giản trong toán học), là một tập hợp các giá trị không có khuôn mẫu dễ nhận biết. Ví dụ: tung xúc xắc 10 lần sẽ tạo ra một số ngẫu nhiên mỗi lần không có bất kỳ mẫu nào có thể nhận dạng được.

Số ngẫu nhiên giả là gì?

Đó là một tập hợp các giá trị ngẫu nhiên về mặt thống kê nhưng có điểm bắt đầu đã biết . Trong Java, mỗi số giả ngẫu nhiên được tạo ra thông qua một thuật toán. Vì vậy, thông thường, một chu kỳ được lặp lại mỗi khi java.util.Random tạo một số ngẫu nhiên. Trình tạo số ngẫu nhiên trong Java sẽ tạo ra các số ngẫu nhiên theo thống kê nhưng với điểm bắt đầu đã biết, được tạo bởi một thuật toán. Điều đó làm cho những giá trị giả ngẫu nhiên.

Lớp java.util.Random không an toàn về mật mã?

Nó không an toàn về mật mã vì nó có các thuật toán được triển khai để tạo số ngẫu nhiên. Do đó, một người biết cách hoạt động của thuật toán sẽ không mất nhiều thời gian để truy cập dữ liệu nhạy cảm của bạn. Vì vậy, nếu bạn đang làm việc với một số ứng dụng bảo mật, cần bảo mật một số dữ liệu nhạy cảm hoặc cần tạo mật khẩu ngẫu nhiên thì tốt hơn hết là tránh sử dụng lớp này. Nó hữu ích trong nhiều trường hợp như tạo một số ngẫu nhiên cho lần tung xúc xắc của bạn trong ludo, đánh bạc, tung một trận đấu hoặc các lĩnh vực khác mà kết quả mong muốn của bạn là không thể đoán trước.

Khai báo phương thức

Để sử dụng các phương thức của lớp này, trước tiên bạn cần nhập nó từ gói dưới dạng
import java.util.Random;
Sau khi nhập, bạn cần tạo một đối tượng của lớp này như
Random randomNumbers = new Random();
Xa hơn nữa, chúng ta hãy xem các ví dụ khác nhau để sử dụng lớp java.util.Random .

Ví dụ

import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();

		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);

		/*
		 * Returns the next pseudo random integer value between 0 and 5
		 * because if we use '6' then, it will give random numbers from 0 to 6
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );

		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);

		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */

		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);

		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

đầu ra

----------Boolean ngẫu nhiên---------- Giá trị boolean ngẫu nhiên là: true ----------Số nguyên ngẫu nhiên---------- Cuộn chết: 4 Cuộn chết: 6 Cuộn chết: 1 Cuộn chết: 1 Cuộn chết: 3 ---------- Dài ngẫu nhiên --------- Giá trị dài ngẫu nhiên: -6029959293504570824 ----------Byte ngẫu nhiên---------- Đây là các byte ngẫu nhiên = [ -37 90 -98 -70 23 -111 19 108 ]

phương pháp

Bây giờ chúng ta sẽ thảo luận về một số phương thức do lớp này cung cấp, hãy nhớ rằng RandomNumbers đối tượng hoặc thể hiện của lớp chúng ta.
  1. nhân đôi() :

    Phương thức này trả về một chuỗi vô hạn các giá trị kép được tạo giả ngẫu nhiên. Bây giờ hãy xem cách sử dụng phương pháp này.

    randomNumbers.doubles();
  2. int() :

    Phương thức này trả về một chuỗi vô hạn các giá trị số nguyên được tạo giả ngẫu nhiên. Bạn có thể sử dụng tập lệnh sau để gọi phương thức này.

    randomNumbers.ints();
  3. dài() :

    Phương thức này trả về một chuỗi vô hạn các giá trị dài được tạo giả ngẫu nhiên. Kịch bản sau đây được sử dụng để gọi phương thức này.

    randomNumbers.longs();
  4. nextBoolean() :

    Phương thức này trả về giá trị boolean giả ngẫu nhiên được phân phối đồng đều tiếp theo từ chuỗi trình tạo số ngẫu nhiên. Phân phối đồng đều có dạng hình chữ nhật, nghĩa là mọi giá trị trong phân phối đều có xác suất bằng nhau. Đây là cách sử dụng phương pháp này.

    randomNumbers.nextBoolean();
  5. nextInt(int n) :

    Phương thức này trả về giá trị số nguyên giả ngẫu nhiên được phân phối đồng đều tiếp theo từ trình tự tạo số ngẫu nhiên giữa 0 bao gồm và loại trừ giá trị được cung cấp. Có một cái nhìn nhanh về cách sử dụng phương pháp này.

    randomNumbers.nextInt(10);

Phần kết luận

Chúng tôi hy vọng bây giờ bạn đã hiểu java.util.Random là gì và cách triển khai các phương thức khác nhau của nó cũng như trường hợp sử dụng nó. Bạn luôn có thể sử dụng lớp này trong java. Hãy thoải mái luyện tập và quay lại đây bất cứ khi nào bạn cần thêm trợ giúp. Chúc bạn học tập vui vẻ!
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào