CodeGym /จาวาบล็อก /สุ่ม /Java.util.Random คลาส
John Squirrels
ระดับ
San Francisco

Java.util.Random คลาส

เผยแพร่ในกลุ่ม

คลาส java.util.Random ใน Java คืออะไร

คลาสjava.util.Randomใช้เพื่อสร้างตัวเลขหลอกเทียม เมธอดที่ใช้โดยคลาสนี้ใช้เพื่อสร้างประเภทข้อมูลสุ่มต่างๆ เช่น int, double และ float ดังนั้นจึงมีตัวเลขสุ่มสองประเภทใหญ่ๆ คือ ตัวเลขสุ่มเชิงสถิติและตัวเลขสุ่มเทียม ตัวเลขสุ่มทางสถิติ (เช่น ตัวเลขสุ่มอย่างง่ายในวิชาคณิตศาสตร์) คือชุดของค่าที่ไม่มีรูปแบบที่จดจำได้ ตัวอย่างเช่น การทอยลูกเต๋า 10 ครั้งจะสร้างตัวเลขสุ่มในแต่ละครั้งที่ไม่มีรูปแบบที่จดจำได้

Pseudo Random Numbers คืออะไร?

เป็นชุดของค่าที่สุ่มทางสถิติ แต่มีจุดเริ่มต้น ที่ ทราบ ใน Java แต่ละหมายเลขเทียมถูกสร้างขึ้นผ่านอัลกอริทึม โดยทั่วไปแล้ววงจรจะเกิดขึ้นซ้ำทุกครั้งที่java.util.Randomสร้างตัวเลขสุ่ม ตัวสร้างตัวเลขสุ่มใน Java จะสร้างตัวเลขสุ่มทางสถิติแต่มีจุดเริ่มต้นที่ทราบ ซึ่งสร้างโดยอัลกอริทึม นั่นทำให้ค่าเหล่านั้นเป็นค่าสุ่ม

java.util.Random class Cryptographically ไม่ปลอดภัยหรือไม่

มันไม่ปลอดภัยในการเข้ารหัสเพราะมีอัลกอริธึมที่ใช้สำหรับสร้างตัวเลขสุ่ม อันเป็นผลมาจากการที่ผู้ที่รู้วิธีการทำงานของอัลกอริทึมจะไม่ใช้เวลามากในการเข้าถึงข้อมูลที่ละเอียดอ่อนของคุณ ดังนั้น หากคุณกำลังทำงานกับแอปพลิเคชันความปลอดภัยบางอย่าง จำเป็นต้องรักษาความปลอดภัยข้อมูลที่ละเอียดอ่อนบางอย่าง หรือจำเป็นต้องสร้างรหัสผ่านแบบสุ่ม คุณควรหลีกเลี่ยงการใช้คลาสนี้ มันมีประโยชน์ในหลายกรณี เช่น การสร้างตัวเลขสุ่มสำหรับการทอยลูกเต๋าของคุณในเกมลูโด การพนัน การโยนเพื่อการแข่งขัน หรือพื้นที่อื่น ๆ ที่ผลลัพธ์ที่คุณต้องการนั้นคาดเดาไม่ได้

การประกาศวิธีการ

สำหรับการใช้วิธีการของคลาสนี้ คุณต้องนำเข้าจากแพ็คเกจก่อนเป็น

import java.util.Random;
หลังจากนำเข้าคุณต้องสร้างวัตถุของคลาสนี้

Random randomNumbers = new Random();
ต่อไป มาดูตัวอย่างต่างๆ ในการใช้คลาส java.util.Random

ตัวอย่าง


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("]");
	}

}

เอาต์พุต

----------บูลีนแบบสุ่ม--------- ค่าบูลีนแบบสุ่มคือ: จริง ----------จำนวนเต็มสุ่ม--------- Die ม้วน: 4 ม้วน: 6 ม้วน: 1 ม้วน: 1 ม้วน: 3 ---------- สุ่มยาว --------- ค่ายาวสุ่ม: -6029959293504570824 ---- ------ ไบต์สุ่ม --------- นี่คือไบต์สุ่ม = [ -37 90 -98 -70 23 -111 19 108 ]

วิธีการ

ตอนนี้เราจะพูดถึงวิธีการบางอย่างในคลาสนี้ โปรดทราบว่า RandomNumbers เป็นวัตถุหรืออินสแตนซ์ของคลาสของเรา
  1. สองเท่า () :

    เมธอดนี้ส่งคืนชุดค่าคู่ที่สร้างขึ้นแบบสุ่มแบบไม่สิ้นสุด ทีนี้มาดูวิธีใช้วิธีนี้กัน

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

    เมธอดนี้ส่งคืนชุดค่าจำนวนเต็มที่สร้างขึ้นแบบสุ่มแบบไม่สิ้นสุด คุณสามารถใช้สคริปต์ต่อไปนี้เพื่อเรียกวิธีนี้

    
    randomNumbers.ints();
    
  3. ยาว () :

    เมธอดนี้ส่งคืนชุดค่ายาวที่สร้างขึ้นแบบสุ่มแบบไม่สิ้นสุด สคริปต์ต่อไปนี้ใช้เพื่อเรียกเมธอดนี้

    
    randomNumbers.longs();
    
  4. บูลีนถัดไป () :

    เมธอดนี้ส่งคืนค่าบูลีนหลอกเทียมที่กระจายอย่างสม่ำเสมอถัดไปจากลำดับตัวสร้างตัวเลขสุ่ม การแจกแจงแบบสม่ำเสมอเป็นรูปสี่เหลี่ยมผืนผ้า หมายความว่าทุกค่าในการแจกแจงมีความน่าจะเป็นเท่ากัน นี่คือวิธีใช้วิธีนี้

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

    เมธอดนี้ส่งคืนค่าจำนวนเต็มเทียมเทียมที่กระจายอย่างสม่ำเสมอถัดไปจากลำดับตัวสร้างตัวเลขสุ่มระหว่างค่ารวม 0 และค่าที่ให้ไว้แต่เพียงผู้เดียว ดูวิธีใช้วิธีนี้อย่างรวดเร็ว

    
    randomNumbers.nextInt(10);
    

บทสรุป

เราหวังว่าตอนนี้คุณคงเข้าใจแล้วว่า java.util.Random คืออะไร และจะนำเมธอดต่างๆ ไปใช้อย่างไร และในสถานการณ์ใดที่จะใช้ คุณสามารถใช้คลาสนี้ใน java ได้ตลอดเวลา ฝึกฝนได้ตามสบายและกลับมาที่นี่ได้ทุกเมื่อที่คุณต้องการความช่วยเหลือเพิ่มเติม มีความสุขในการเรียนรู้!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION