Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में rand() और srand()

rand()

फ़ंक्शन rand() का उपयोग छद्म यादृच्छिक संख्या उत्पन्न करने के लिए किया जाता है। यह एक इंटीजर मान लौटाता है और इसकी रेंज 0 से RAND_MAX तक होती है यानी 32767।

यहां C भाषा में rand() का सिंटैक्स है:

int rand(void);

यहां C भाषा में rand() का एक उदाहरण है:

उदाहरण

#include <stdio.h>
#include <stdlib.h>

int main() {
   printf("%d\n", rand());
   printf("%d", rand());
   return 0;
}

आउटपुट

1804289383
846930886

srand()

फ़ंक्शन srand() का उपयोग rand() फ़ंक्शन द्वारा उत्पन्न छद्म यादृच्छिक संख्या को इनिशियलाइज़ करने के लिए किया जाता है। यह कुछ भी नहीं लौटाता।

यहां C भाषा में srand() का सिंटैक्स है:

void srand(unsigned int seed);

यहां C भाषा में srand() का एक उदाहरण है:

उदाहरण

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
   srand(time(NULL));  // वर्तमान समय के साथ सीड
   printf("%d\n", rand());
   
   srand(12);  // निश्चित सीड
   printf("%d", rand());
   return 0;
}

आउटपुट

1432462941
1687063760

महत्वपूर्ण बिंदु:

  • srand() के बिना, rand() हर रन में समान अनुक्रम उत्पन्न करता है
  • srand(time(NULL)) प्रोग्राम के प्रत्येक रन के लिए अलग अनुक्रम देता है
  • एक ही सीड के साथ srand() समान अनुक्रम उत्पन्न करेगा (डीबगिंग के लिए उपयोगी)
  • RAND_MAX कम से कम 32767 है (आमतौर पर 2147483647 आधुनिक सिस्टम्स पर)
  • बेहतर यादृच्छिकता के लिए, C++11 के या POSIX के random() का उपयोग करें

रेंज में यादृच्छिक संख्या

// min से max (inclusive) के बीच
int random_in_range(int min, int max) {
   return min + rand() % (max - min + 1);
}
  1. UEFI और Windows 8 UEFI और Windows 8

    इस लेख में हम UEFI धारणा की अवधारणा और Windows 8 में इस तकनीक के अनुप्रयोग का पता लगाते हैं। UEFI तकनीक क्या है? UEFI संक्षिप्त नाम Unified Extensible Firmware Interface के लिए है। यह तकनीक पारंपरिक कंप्यूटर बूट सिस्टम संशोधन के लिए डिज़ाइन की गई है और अप्रचलित BIOS सिस्टम को प्रतिस्थापित करना चाहि

  1. - MySQL में ORDER BY RAND() के साथ समूहित रिकॉर्ड रखना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके रैंडम क्रम में पंक्तियाँ प्राप्त की जा सकती हैं। यदि डुप्लिकेट मानों को एक साथ समूहित रखते हुए रैंडम क्रम चाहिए, तो एक्सप्रेशन RAND(कॉलम * स्थिरांक * RAND()) का उपयोग किया जा सकता है। टेबल निर्माण और डेटा सम्मिलन insert into DemoTable(StudentMarks) val

  1. - पायथन में 3 और 7 (रैखिक संयोजन)

    समस्या विवरण एक धनात्मक संख्या n दी गई है, जांचें कि क्या इसे 3 के गैर-ऋणात्मक गुणक और 7 के गैर-ऋणात्मक गुणक के योग के रूप में व्यक्त किया जा सकता है। उदाहरण इनपुट: 13 आउटपुट: True (क्योंकि 13 = 1×7 + 2×3) एल्गोरिदम i = 0 से n तक स्टेप 7 में: यदि (n - i) % 3 == 0: True False पायथन कार्