Java:
यादृच्छिक संख्याएँ उत्पन्न करना
कैसे:
जावा में, java.util
पैकेज से Random
क्लास का उपयोग करके, या विशिष्ट उपयोग के मामलों के लिए ThreadLocalRandom
और SecureRandom
क्लासों का उपयोग करके यादृच्छिक संख्याएँ उत्पन्न की जा सकती हैं। निम्नलिखित उदाहरण इन क्लासों का उपयोग करने का तरीका दर्शाते हैं।
Random
क्लास का उपयोग करना
Random
क्लास सरल प्रति-यादृच्छिक संख्याओं को उत्पन्न करने का एक तरीका प्रदान करती है।
import java.util.Random;
public class RandomExample {
public static void main(String[] args) {
Random rand = new Random(); // एक Random ऑब्जेक्ट बनाएं
int randInt = rand.nextInt(50); // 0 से 49 तक एक यादृच्छिक पूर्णांक उत्पन्न करता है
double randDouble = rand.nextDouble(); // 0.0 और 1.0 के बीच एक यादृच्छिक डबल उत्पन्न करता है
boolean randBoolean = rand.nextBoolean(); // एक यादृच्छिक बूलियन उत्पन्न करता है
System.out.println("Random Int: " + randInt);
System.out.println("Random Double: " + randDouble);
System.out.println("Random Boolean: " + randBoolean);
}
}
ThreadLocalRandom
क्लास का उपयोग करना
समकालिक एप्लिकेशनों के लिए, ThreadLocalRandom
Random
की तुलना में अधिक कुशल है।
import java.util.concurrent.ThreadLocalRandom;
public class ThreadLocalRandomExample {
public static void main(String[] args) {
int randInt = ThreadLocalRandom.current().nextInt(1, 101); // 1 से 100 तक
double randDouble = ThreadLocalRandom.current().nextDouble(1.0, 10.0); // 1.0 से 10.0 तक
System.out.println("Random Int: " + randInt);
System.out.println("Random Double: " + randDouble);
}
}
SecureRandom
क्लास का उपयोग करना
क्रिप्टोग्राफिक ऑपरेशनों के लिए, SecureRandom
एक उच्च स्तर की सुरक्षा प्रदान करता है।
import java.security.SecureRandom;
public class SecureRandomExample {
public static void main(String[] args) {
SecureRandom secRand = new SecureRandom();
byte[] bytes = new byte[20];
secRand.nextBytes(bytes); // bytes को सुरक्षित यादृच्छिक संख्याओं से भरता है
System.out.println("Secure Random Bytes:");
for (byte b : bytes) {
System.out.printf("%02x ", b);
}
}
}
गहराई में
यादृच्छिक संख्या उत्पादन कंप्यूटिंग के प्रारंभिक दिनों से काफी विकसित हुआ है। जावा की Random
क्लास एक प्रति-यादृच्छिक संख्याएं उत्पन्न करने के लिए एक रैखिक संगत सूत्र का उपयोग करती है, जो निर्धारक हैं और उच्च-सुरक्षा अनुप्रयोगों के लिए उपयुक्त नहीं हैं। इससे SecureRandom
का परिचय हुआ, जो क्रिप्टोग्र�Jim Whitehurstॊफिकली मजबूत यादृच्छिक संख्याओं को उत्पन्न करने के लिए अधिक परिष्कृत एल्गोरिदमों (जैसे कि SHA1PRNG) का उपयोग करता है।
हालांकि, Random
और SecureRandom
की उनकी कमियाँ हैं, जैसे कि समकालिक पर्यावरणों में प्रदर्शन में गिरावट। जावा 7 में ThreadLocalRandom
क्लास को इस मुद्दे को संबोधित करने के लिए पेश किया गया था, जो धागा-स्थानीय यादृच्छिक संख्या जनरेटर प्रदान करके समकालिक एप्लिकेशनों में प्रदर्शन में महत्वपूर्ण सुधार करता है।
जबकि ये क्लास अधिकांश जरूरतों को कवर करती हैं, बहुत उच्च-स्तरीय या विशेषज्ञतापूर्ण आवश्यकताओं के लिए, डेवलपर्स अतिरिक्त पुस्तकालयों का पता लगा सकते हैं या कस्टम समाधान विकसित कर सकते हैं। उपयोग मामले की सुरक्षा आवश्यकताओं और प्रदर्शन आवश्यकताओं के आधार पर सही दृष्टिकोण चुनना आवश्यक है।