Java.util.Random क्लास जावा में क्या है?

Java.util.Random वर्ग छद्म यादृच्छिक संख्या उत्पन्न करने के लिए प्रयोग किया जाता है इस वर्ग द्वारा कार्यान्वित विधियों का उपयोग विभिन्न यादृच्छिक डेटा प्रकार जैसे इंट, डबल और फ्लोट उत्पन्न करने के लिए किया जाता है। तो दो प्रमुख प्रकार की यादृच्छिक संख्याएँ हैं, सांख्यिकीय रूप से यादृच्छिक और छद्म यादृच्छिक संख्याएँ । सांख्यिकीय रूप से यादृच्छिक संख्याएं (गणित में सरल यादृच्छिक संख्या की तरह), मानों का एक सेट होती हैं जिनका कोई पहचानने योग्य पैटर्न नहीं होता है। उदाहरण के लिए, एक पासे को 10 बार घुमाने पर हर बार एक यादृच्छिक संख्या उत्पन्न होगी जिसका कोई पहचानने योग्य पैटर्न नहीं है।

छद्म यादृच्छिक संख्याएँ क्या हैं?

यह मानों का एक समूह है जो सांख्यिकीय रूप से यादृच्छिक हैं लेकिन एक ज्ञात प्रारंभिक बिंदु है । जावा में, प्रत्येक छद्म यादृच्छिक संख्या एक एल्गोरिथम के माध्यम से उत्पन्न होती है। तो आम तौर पर एक चक्र हर बार दोहराया जाता है java.util.Random एक यादृच्छिक संख्या उत्पन्न करता है। जावा में एक यादृच्छिक संख्या जनरेटर सांख्यिकीय रूप से यादृच्छिक संख्या उत्पन्न करेगा, लेकिन एक एल्गोरिथ्म द्वारा उत्पन्न एक ज्ञात प्रारंभिक बिंदु के साथ। यह उन मूल्यों को छद्म यादृच्छिक बनाता है।

क्या java.util.Random वर्ग क्रिप्टोग्राफ़िक रूप से असुरक्षित है?

यह क्रिप्टोग्राफिक रूप से असुरक्षित है क्योंकि इसमें यादृच्छिक संख्या उत्पन्न करने के लिए एल्गोरिदम लागू किया गया है। जिसके परिणामस्वरूप एल्गोरिथ्म कैसे काम करता है यह जानने वाला व्यक्ति आपके संवेदनशील डेटा तक पहुँचने में अधिक समय नहीं लेगा। इसलिए यदि आप कुछ सुरक्षा अनुप्रयोगों के साथ काम कर रहे हैं, कुछ संवेदनशील डेटा को सुरक्षित करने के लिए आवश्यक हैं, या यादृच्छिक पासवर्ड उत्पन्न करने की आवश्यकता है, तो इस वर्ग का उपयोग करने से बचना बेहतर होगा। यह कई मामलों में मददगार है जैसे लूडो, जुए में अपने पासा रोल के लिए एक यादृच्छिक संख्या उत्पन्न करना, मैच के लिए टॉस करना या अन्य क्षेत्रों में जहां आपका वांछित परिणाम अप्रत्याशित है।

विधि घोषणा

इस वर्ग के तरीकों का उपयोग करने के लिए आपको पहले इसे पैकेज से आयात करना होगा

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

}

उत्पादन

----------रैंडम बूलियन--------- रैंडम बूलियन वैल्यू है: ट्रू ----------रैंडम इंटीजर--------- डाइ रोल: 4 डाई रोल: 6 डाई रोल: 1 डाई रोल: 1 डाई रोल: 3 ---------- रैंडम लॉन्ग --------- रैंडम लॉन्ग वैल्यू: -6029959293504570824 ---- ------रैंडम बाइट्स--------- ये रैंडम बाइट्स हैं = [ -37 90 -98 -70 23 -111 19 108 ]

तरीकों

अब हम इस वर्ग द्वारा प्रदान की गई कुछ विधियों पर चर्चा करेंगे, यह ध्यान में रखते हुए कि यादृच्छिक संख्या हमारी कक्षा की वस्तु या उदाहरण है।
  1. डबल्स () :

    यह विधि छद्म-यादृच्छिक रूप से उत्पन्न दोहरे मानों की एक अनंत श्रृंखला लौटाती है। अब देखते हैं कि इस विधि का उपयोग कैसे करें।

    
    randomNumbers.doubles();
    
  2. इंट्स () :

    यह विधि छद्म-यादृच्छिक रूप से उत्पन्न पूर्णांक मानों की एक अनंत श्रृंखला लौटाती है। इस विधि को कॉल करने के लिए आप निम्न स्क्रिप्ट का उपयोग कर सकते हैं।

    
    randomNumbers.ints();
    
  3. लंबा () :

    यह विधि छद्म-यादृच्छिक रूप से उत्पन्न लंबे मूल्यों की एक अनंत श्रृंखला लौटाती है। इस विधि को कॉल करने के लिए निम्न स्क्रिप्ट का उपयोग किया जाता है।

    
    randomNumbers.longs();
    
  4. अगला बूलियन () :

    यह विधि यादृच्छिक संख्या जनरेटर अनुक्रम से अगला समान रूप से वितरित छद्म यादृच्छिक बूलियन मान लौटाती है। समान वितरण आयताकार आकार का है, जिसका अर्थ है कि वितरण में प्रत्येक मान की समान संभावना है। यहाँ इस विधि का उपयोग करने का तरीका बताया गया है।

    
    randomNumbers.nextBoolean();
    
  5. अगला इंट (इंट एन) :

    यह विधि यादृच्छिक संख्या जेनरेटर अनुक्रम से 0 समावेशी और प्रदान किए गए मान अनन्य के बीच अगला समान रूप से वितरित छद्म यादृच्छिक पूर्णांक मान लौटाती है। इस विधि का उपयोग कैसे करें, इसका त्वरित अवलोकन करें।

    
    randomNumbers.nextInt(10);
    

निष्कर्ष

हमें उम्मीद है कि अब तक आप समझ गए होंगे कि java.util.Random क्या है और इसके विभिन्न तरीकों को कैसे लागू किया जाए और किस परिदृश्य में इसका उपयोग किया जाए। आप हमेशा इस वर्ग का उपयोग जावा में कर सकते हैं। अभ्यास करने के लिए स्वतंत्र महसूस करें और जब भी आपको अधिक सहायता की आवश्यकता हो, यहां वापस आएं। हैप्पी लर्निंग!