रैंड () सी भाषा में समारोह

Rand Function C Language

सी भाषा में, पंक्ति() समारोह के लिए प्रयोग किया जाता है छद्म संख्या जेनरेटर (पीआरएनजी) . रैंड () फ़ंक्शन द्वारा उत्पन्न यादृच्छिक संख्या वास्तव में यादृच्छिक नहीं है। यह एक क्रम है जो समय-समय पर दोहराता है, लेकिन अवधि इतनी बड़ी है कि हम इसे अनदेखा कर सकते हैं। NS पंक्ति() फ़ंक्शन एक बीज मान को याद करके काम करता है जिसका उपयोग अगले यादृच्छिक संख्या और अगले नए बीज की गणना करने के लिए किया जाता है। इस लेख में, हम विस्तार से चर्चा करने जा रहे हैं कि कैसे यादृच्छिक संख्याएं उत्पन्न की जा सकती हैं पंक्ति() समारोह। तो चलो शुरू हो जाओ!

शीर्ष लेख फ़ाइल:

stdlib.h







वाक्य - विन्यास:

इंट रैंड (शून्य)



वापसी मान:

यह फ़ंक्शन श्रृंखला में अगला छद्म-यादृच्छिक संख्या देता है। संख्या श्रृंखला का श्रेणी मान 0 और RAND_MAX के बीच है। RAND_MAX एक मैक्रो परिभाषित किया गया है stdlib.h हेडर फ़ाइल, जिसका मान अधिकतम मान है, जिसे रैंड () फ़ंक्शन द्वारा वापस किया जा सकता है। C पुस्तकालयों के आधार पर RAND_MAX का मान अधिक है लेकिन 32767 से कम नहीं है।



// उदाहरण1.c

#शामिल
#शामिल

NSमुख्य()
{

NSमैं;

printf ('10 रैंडम नंबर =>एन');

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%डी ', पंक्ति ());
}

printf ('एन');
वापसी 0;
}


example1.c में, हम लूप के प्रत्येक पुनरावृत्ति में रैंड () फ़ंक्शन को कॉल करते हैं और फ़ंक्शन के रिटर्न मान को प्रिंट करते हैं। हर बार जब हम प्रोग्राम चलाते हैं तो रैंड () फ़ंक्शन का मान अनुक्रम समान होता है। डिफ़ॉल्ट रूप से, रैंड फ़ंक्शन का बीज 1 पर सेट होता है।





हम रैंड फ़ंक्शन के लिए बीज का उपयोग करके सेट कर सकते हैं सरैंड () समारोह। बीज केवल एक बार, और पहली बार से पहले सेट किया जा सकता है पंक्ति() फ़ंक्शन कॉल।

सरैंड () फ़ंक्शन:

शीर्ष लेख फ़ाइल:

stdlib.h



वाक्य - विन्यास:

इंट सरैंड (अहस्ताक्षरित इंट सीड)

तर्क:

यह फ़ंक्शन 1 तर्क लेता है

बीज: छद्म यादृच्छिक संख्याओं की एक नई श्रृंखला के लिए बीज के रूप में उपयोग किया जाने वाला एक पूर्णांक मान।

वापसी मान:

कोई नहीं

//उदाहरण2.c

#शामिल
#शामिल
#शामिल

NSमुख्य()
{

NSमैं;

सरांडो ( समय (0));

printf ('10 रैंडम नंबर =>एन');

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%डी ', पंक्ति ());
}

printf ('एन');
वापसी 0;
}


example2.c में, हमने रैंड () फ़ंक्शन द्वारा उत्पन्न यादृच्छिक संख्या अनुक्रम के प्रारंभिक बीज को सेट करने के लिए srand () फ़ंक्शन का उपयोग किया है। हर बार जब प्रोग्राम चलाया जाता है, तो एक अलग क्रम उत्पन्न होता है। srand() में, समय(0) फ़ंक्शन (में घोषित) समय.एच हैडर फ़ाइल) का उपयोग बीज के रूप में किया जाता है। यह समय (0) फ़ंक्शन युग (00:00:00, 1 जनवरी, 1970) के बाद से बीत चुके सेकंड की संख्या लौटाता है। यदि आप प्रोग्राम को उसी सेकंड में चलाते हैं तो यह अभी भी वही अनुक्रम उत्पन्न कर सकता है।

// उदाहरण3.c

#शामिल
#शामिल
#शामिल

NSमुख्य()
{

NSमैं;

सरांडो ( समय (0));

printf ('10 यादृच्छिक संख्या 1 और 10 के बीच =>एन');

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%डी ',( पंक्ति () %10) + 1);
}

printf ('एन');
वापसी 0;
}


उदाहरण 3.c में हमने देखा है कि कैसे 1 और 10 के बीच यादृच्छिक संख्याएँ उत्पन्न की जा सकती हैं।

// उदाहरण4.c

#शामिल
#शामिल
#शामिल

NSमुख्य()
{

NSमैं,मैक्स,मिनट;

printf ('न्यूनतम मान दर्ज करें =>');
स्कैनफ ('%डी', औरमिनट);
printf ('अधिकतम मान दर्ज करें =>');
स्कैनफ ('%डी', औरमैक्स);

अगर(मिनट>मैक्स)
{
printf ('न्यूनतम मान अधिकतम मान से अधिक है'एन');
वापसी 0;
}

सरांडो ( समय (0));


printf ('10 %d और %d=> . के बीच यादृच्छिक संख्याएंएन',मिनट,मैक्स);

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%डी ',( पंक्ति () % (मैक्स-मिनट+1)) +मिनट);
}

printf ('एन');
वापसी 0;
}


example4.c में हमने उपयोगकर्ता से सीमा ली है और इस सीमा के भीतर एक यादृच्छिक संख्या उत्पन्न की है। सूत्र है: रैंड ()% (अधिकतम - न्यूनतम +1)) + मिनट

// उदाहरण5.c

#शामिल
#शामिल
#शामिल

NSमुख्य()
{

NSमैं;

सरांडो ( समय (0));

printf ('10 यादृच्छिक संख्या 0.0 और 1.0 के बीच =>एन');

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%एफ ',((पानी पर तैरना) पंक्ति () /रैंड_मैक्स));
}

printf ('एन');
वापसी 0;
}


example5.c में, हमने देखा है कि कैसे हम फ्लोट 0.0 और 1.0 के बीच यादृच्छिक संख्याएँ उत्पन्न कर सकते हैं, सूत्र है: (फ्लोट) रैंड () /RAND_MAX)

// उदाहरण6.c

#शामिल
#शामिल
#शामिल

NSमुख्य()
{

NSमैं;
पानी पर तैरनामैक्स,मिनट;

printf ('न्यूनतम मान दर्ज करें =>');
स्कैनफ ('%एफ', औरमिनट);
printf ('अधिकतम मान दर्ज करें =>');
स्कैनफ ('%एफ', औरमैक्स);

अगर(मिनट>मैक्स)
{
printf ('न्यूनतम मान अधिकतम मान से अधिक है'एन');
वापसी 0;
}

सरांडो ( समय (0));

printf ('10 यादृच्छिक संख्या %f और %f के बीच =>एन',मिनट,मैक्स);

के लिये(मैं=0;मैं<10;मैं++)
{
printf ('%एफ ',मिनट+ ((पानी पर तैरना) पंक्ति () /(रैंड_मैक्स/(मैक्स-मिनट))));
}

printf ('एन');
वापसी 0;
}


example6.c में, हमने उपयोगकर्ता से सीमा ली है और इस सीमा के भीतर एक यादृच्छिक संख्या उत्पन्न की है (दोनों शामिल)। सूत्र है: मिनट + ((फ्लोट) रैंड () /(RAND_MAX/(अधिकतम – मिनट)))

निष्कर्ष:

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